2011年7月29日 星期五

ORM Speed Test : LINQ to SQL , Entity Framework , SubSonic


上圖就是這次測試的評比結果,計算方式為將測試時間以 SqlCommand 的時間為 Index (所以1為最快,數字越大越慢),然後來與其他ORM的時間做比較,Read的測試有做兩個,所以Read的分數是兩個測試的Index去平均的。

簡單來說,Read 時的LINQ與EF效能輸SqlCommand不會太多,分別約慢了51%與79%,而SubSonic就爆掉了,分數為5.20,也就是慢了420%。
而 Write 時,反過來是SubSonic慢SqlCommand 34%,領先LINQ與EF的174%與172%。

下面說明這次測試如何進行。

2011年7月28日 星期四

[SubSonic] SubSonic 3.0 Insert / Select Top / Where In

同前面LINQEF,這篇也是測試ORM的語法,順便拿來當備忘錄的。

使用的版本為SubSonic 3.0,測試的相關資料請看這篇

下面就是以 SubSonic 去做 Insert / Select Top / Where In 的範例,如果有效率更好的寫法,麻煩請跟我說,感謝。

Insert
public static void SubSonicInsert(string name, int score)
        {
            Data.tbl_Speed_Test st= new Data.tbl_Speed_Test();
            st.name = name;
            st.score = score;
            st.Save();
        }
語法超短的,相當於SQL Command的
insert into [Died_Test].[dbo].[tbl_Speed_Test] (name,score) values(@name,@score)
SubSonic對有預設值的欄位也需要手動對ActiveRecord.cs(如果你是用ActiveRecord)改點設定,詳情可以見這篇"Linq to SQL, Entity Framework, SubSonic 3.0 對於預設欄位的處理方式"。

[EF4] Entity Framework Insert / Select Top / Where In

前文,這篇也是測試ORM的語法,順便拿來當備忘錄的。

使用的版本為ADO.NET Entity Framework 4.1 - Update 1,測試的相關資料請看這篇

下面就是以 Entity Framework 去做 Insert / Select Top / Where In 的範例,如果有效率更好的寫法,麻煩請跟我說,感謝。

Insert
public static void EntityInsert(string name, int score)
        {
            tbl_Speed_Test_EF st = new tbl_Speed_Test_EF();
            st.name = name;
            st.score = score;

            using (Died_TestEntities context = new Died_TestEntities())
            {
                try
                {
                    context.tbl_Speed_Test.AddObject(st);
                    context.SaveChanges();
                }
                catch (Exception e)
                {
                    throw e;
                }
            }
        }
相當於SQL Command的
insert into [Died_Test].[dbo].[tbl_Speed_Test] (name,score) values(@name,@score)
Entity Framework對於有預設值的欄位也需要手動對edmx改點設定,詳情可以見這篇"Linq to SQL, Entity Framework, SubSonic 3.0 對於預設欄位的處理方式"。

[LINQ] LINQ to SQL Insert / Select Top / Where In

之前用幾個ORM去測試速度,想說寫了都寫了,就順便把測試用的語法也貼出來,這樣我健忘時還可以回來找code參考。

測試的相關資料請看這篇

下面就是以LINQ to SQL去做Insert / Select Top / Where In 的範例,我沒有測試過很多種寫法,如果有效率更好的寫法,麻煩請跟我說,感謝。

Insert
public static void LinqInsert(string name, int score)
        {
            LinqModelDataContext DB = new LinqModelDataContext();
            tbl_Speed_Test st = new tbl_Speed_Test();
            st.name = name;
            st.score = score;
            DB.tbl_Speed_Tests.InsertOnSubmit(st);
            try
            {
                DB.SubmitChanges();
            }
            catch(Exception e)
            {
                throw e;
            }
        }
這段語法相當於SQL Command的
insert into [Died_Test].[dbo].[tbl_Speed_Test] (name,score) values(@name,@score)
實際上測試的Table有三個欄位,不過Prime Key的Guid我設成DB自動產生,所以就不塞值進去了,這種方式需要手動對dbml改點設定,詳情可以見這篇"Linq to SQL, Entity Framework, SubSonic 3.0 對於預設欄位的處理方式"。

《不能戳的秘密》完整版 + 懶人包



因為蘋果的影片不能嵌入,新頭殼的影片畫質比較差,所以我傳上了Youtube。

影片原始檔來自蘋果動新聞,作者李惠仁。

《不能戳的秘密》是2011年李惠仁導演最新紀錄片作品。本片將輪迴在台灣學界、官僚系統那些明明看得到但卻又不能說的秘密,一次披露,呈現給觀眾。用深入淺出的方式將艱深的公衛知識化為常識,讓大眾明白每天圍繞在身邊的謊言與危機。這部片子要捍衛的不只是全民的健康,也是永恆不滅的正義!

獨立導演及自由記者李惠仁,耗時6年,追蹤調查完成《不能戳的秘密》紀錄片。片中指出台灣之所以爆發禽流感疫情,是有人將禽流感病毒株偷偷製成禽流感疫苗販賣,由於製程粗糙,原先想讓雞隻產生抗體的疫苗,反讓疫情大流行;同時揭露農委會隱匿國內高病原禽流感疫情,並找專家學者背書放寬認定標準的過程。

2011/7/29 update 懶人包。

2011年7月20日 星期三

烙印勇士新版動畫

berserkfile

有在看烙印勇士的人,還記得Berserk Film上之前說的7/15號公布消息嗎 ?

果真,時間到了之後,網站首頁放上了一段約30秒長度的Trailer,由於是重新製作,所以畫質相當的棒,比之前的動畫版好上太多了,而這次的內容則是黃金時代篇Part 1,之後的Part2,3時間尚未宣布,下面可以看一下2012一月會上映的全新Berserk Film Trailer。

2011年7月12日 星期二

Love Lost - The Temper Trap



前陣子看了飯飯之交(No Strings Attached),在故事要到尾聲前,突然聽到了一段熟悉的音樂,直到電影結束後,我還是一直被這小段輕快的節奏吸引住,總覺得在哪邊聽過,找了好久,才找到這首歌是 The Temper Trap 的「Love Lost」,而後來也想了起來在哪邊聽到這首歌了,去年有間馬來西亞公司員工旅遊,來台後拍的影片就是使用 Love Lost 當配樂,因為音樂與影片都相當出色,所以我就一直記在心頭,直到最近又被翻出來。

相當好聽的歌,enjoy it.

2011年7月11日 星期一

農委會拿人民稅金搞政黨鬥爭

cb1b5510204d5781f0bd47632961af82

日前農民跟馬英九反映農產品價格很差,結果馬英九回:「怎麼不早說」,引起軒然大波,農委會主委陳武雄立刻展開反擊,並且在隨後的晚報登了上面這廣告。

想用廣告洗腦,讓人忘記農產品價格很差的卑劣心態就先跳過暫時不提,最可惡的是農委會居然用我繳的稅金去打擊特定政黨,這不就是跟共產黨拿公帑去唱紅歌一樣的作為嗎 ?

才重新執政三年,又重回國庫通黨庫的狀態了,明著拿民脂民膏去搞政黨鬥爭,肆無忌憚到如此,我想已經不是陳武雄下台可以解決的吧...



2011年7月10日 星期日

[心得]原來行政院長可以公開恐嚇他人



今天翻到這則新聞,真是讓我太訝異了,原來行政院長可以公開恐嚇他人性命,果真人追求權勢不是沒有原因的,有權後錢自然會找上門,然後還不用守法,真是太酷了。

吳敦義:「我從執政到問政現在,沒有一樣是不可信的。
吳敦義:「從未有過講不實的話。
吳敦義:「罵我那三個字的,逃亡海外,不敢負責,最後病死異鄉的王玉雲老先生,我不希望李前總統也學王玉雲老先生學的那麼快。

2011年7月9日 星期六

蕉農:香蕉價錢很差。馬英九:你怎麼不早說 ?



相當有趣的新聞。

蕉農:「香蕉鳳梨啊,價錢那麼差。」

馬英九:「這個價格不好要早點說。」

我幫馬英九補上內心OS好了,「這個報紙沒寫,我不知道啊,你早說我就會推給八年遺毒,外交鎖國了。」

2011年7月7日 星期四

benjemin 廁所實驗展“Exhibit for what?”線上看!

既然租畫廊作品也賣不掉,那除了畫廊還有別的嗎?
屁股涼颼颼地邊解放邊看作品的可能性探討中!

If we borrow a gallery and cannot sell artwork,
why it have to be at gallery?
Is it possible to see artwork in toilet with naked ass?



雖然形象跟氣質不太對,但班仔本人我真的是念藝術科系的!

(現代美術研究所在學中8-))


做藝術的人常常說想要跟觀眾親近,

但是專程到畫廊看這要求卻也好像不怎麼好親近?

所以就借著在學校可以使用學校場地的機會

做一些展示的實驗 :>

(題外話:大學的時候覺得借畫廊要湊錢好難啊~出社會發現

"錢可以解決的問題都是小問題"說得沒錯!真的想借學校這種公共空間才難!)

第一彈就是配合廁所這個空間 做一個輕鬆好玩,廁所塗鴉式的展示!

線上版還請捧個場呀~(搓手ing)







Alvin : G+ 做的很棒! 看來是時候噗浪把Google買下來了

GoodAlvin

最近比較忙,沒空寫文章,只能在Google Plus上亂逛,看到Plurk創辦人之一在G+上面的回話,實在是太有趣了,不得不貼上來分享一下。

不萊恩在G+的訊息中說了Alvin也來Google Plus了,結果Alvin後來自己跑來回應:「G+ 做的很棒! 看來是時候噗浪把Google買下來了」。

Alvin真的是相當逗趣的人,在plurk上看他一直都是如此風趣,希望能繼續保持下去!!

不過說好的裸奔呢 ????

2011年7月4日 星期一

五毛黨入侵 Google+

5cent

Google+才剛推出,中國就迅速的將Google+封鎖,其害怕社群工具之心明顯之至,除此之外,中國的五毛黨(網路評論員)也立即進駐,真的讓我佩服天朝在箝制人民的效率之快,可說是嘆為觀止。

2011年7月3日 星期日

Google Trends : 台北人最愛 Google+

googleplus

6/29號Google宣布了全新的社交平台,Google+,吸引了相當多愛嘗鮮、想玩Google產品、或是厭倦Facebook的人前來使用,短短沒幾天,已湧進相當多的人潮,使得Google不得已先暫時邀請功能,使用Google Trends看了一下,沒想到台灣是最多人對Google+搜尋的地方,也就是台灣對Google+最有興趣,而台北也得到了第一名,真是難得的事,特此紀錄一下。