Browse by Tags
All Tags
»
Performance
(
RSS
)
.NET
AJAX
ASP.NET
Entity Framework
IE
IIS
Javascript
jQuery
KB
Linq
ORACLE
SQL 2008
Tips
Trouble-Shooting
迴圈比對條件的陣列長度該不該用變數?
前幾天看到關於陣列跑迴圈時,比對條件裡陣列長度改用變數提升執行效率的討論。亦即 for (int i = 0; i < array.Length; i++) ... 若改成 int c = array.Length; for (int i = 0; i < c; i++) ... 會不會變快? 支持變快的理由是比對條件會反覆執行,array.Length透過屬性取值會比直接存取變數耗時。 但有另一派 說法 : Some programmers believe that they can...
關於IQueryable<T>特性的小實驗
ASP.NET Web API支援OData,可以藉由URL加註$filter、$orderby、$skip、$top參數,對資料進行條件篩選、排序、分頁等加工(關於ASP.NET Web API OData特性,可參見KKBruce的 文章 )。而要啟用OData,有項重要前題是回傳資料型別必須為IQueryable<T>,而非一般LINQ常用的IEnumerable<T>。 對於List<T>、T[]等保存在記憶體的資料結構,傳回IQueryable<T>充其量只是要多一層...
【茶包射手日記】LINQ過量載入陷阱及.NET記憶體限制
今天處理了一件.NET服務故障案件。有個.NET開發的Windows服務,其任務為每隔幾分鐘查詢資料庫,取出待處理的作業項目,依其指示執行相關動作。狀況為資料庫仍有大量待處理項目,但服務未如預期取回資料逐筆消化。 幸運的是,程式設計時已加入頗為詳細的Log機制,很快地在Log檔發現記憶體不足錯誤訊息: System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown. ...
打破沙鍋-AJAX POST比GET效率差?
故事要從點部落看到的 一篇文章 說起,該文章引薦了另一篇文章: 如何有效的提升網站的效能 - 12項建議 ,提出不少網頁前端設計上的效能提示,不過其中第8點: 在使用Ajax時,請盡量以GET的方式進行請求,以POST的方式將造成雙倍的要求次數 卻讓人有些疑惑,依我對HTTP GET與POST運作原理的理解,無法解釋Request數變兩倍的理由。於是在噗浪上 討論了一番 ,發現許多人跟我有相同的疑問,直到JavaScript神人-費拉諾蘭大公現身,指引眾人一條明路,在Yahoo Developer...
當心LINQ搜尋的效能陷阱
對於長年與資料庫、SQL語法打交道的開發者來說,LINQ語法有無比的親切感! 當要在List<SomeClass>集合中找尋特定物件時,寫成 form o in SomeList where o.Col1 == "A" && o.Col2 == "B" select o 是再自然也不過的事。乍看之下,反正List<SomeClass>已被存在記憶體,無須顧忌反覆查詢資料庫所產生的連線成本,而where條件比對又十分直覺易懂...
再探ASP.NET大排長龍問題
在 MaxConnectionsPerServer實驗 中,發現一個過去被忽略的問題: 原來同一個Session下, 啟用Session的ASP.NET網頁,因鎖定限制有可能出現單一時間內只能有一個Request被處理的情況 。換句話說,即便我們使用非同步方式同時發出10個對ASP.NET網頁的Request,若該ASP.NET網頁涉及Session,這10個Request將不會同步執行,而是10個Request排成一列,一個執行完再執行下一個。 回到上回MaxConnectionsPerServer...
ODP.NET OracleBulkCopy
嫌棄使用OracleCommand批次更新大量資料效能不佳,爬文找到ODP.NET有個 OracleBulkCopy類別 支援將整個ADO.NET DataTable一次送至資料庫更新(與SQL 2008的 Table Value Parameter 有異曲同工之妙),於是做了Lab測試效果。 在Oracle資料庫建了一個TABLE BIGONE (N DECIMAL(6,0), T NVARCHAR2(64))資料表,在.NET程式中產生五萬筆資料,分別使用以下兩種方法寫入資料庫: 1) 建立OracleCommand...
Reflection執行效能測試
在寫類似Code Generator的功能,遇到一個抉擇點: 若要將DataRow的各欄位逐一映對到資料物件的各欄位上,該使用Reflection還是Hard-Coding? 使用 Reflection 方式(PropertyInfo)讀寫物件屬性可大幅簡化程式碼複雜度,但需付出效能上的代價。如 先前文章 所提,隨著CPU的運算能力愈來愈強大,效能代價的負面影響也會愈來愈小。只是在查詢資料過程中,DataRow轉換成資料物件的程序會被連續大量執行,恐怕又得另當別論。例如: 查詢取回10萬筆DataRow...
ORACLE LIKE效能調校經驗一枚
在我的認知裡,資料庫查詢在使用LIKE 'ABC%'時還是可以引用Index,但若變成LIKE '%ABC%',或LIKE '%ABC',就註定只能Table Scan,把整張資料表的每一筆撈出來比對。 最近幫忙看一個Oracle資料庫查詢效能不佳的個案,學到不同的處理經驗: SELECT C1, C2, C3, C4, C5, C6, C7 FROM myTable WHERE C1 = 'XXXX' AND C2 LIKE 'ABC...
關於SQL語法IN條件式的效能
前些時候,在做資料查詢時發現ORACLE支援多欄位IN條件的簡化寫法: SELECT * FROM T1 WHERE (C1,C2) IN (SELECT C1,C2 FROM T2) 當下覺得它好簡潔,SQL沒有真是可惜,便在噗浪上 嘟嚷 了兩句,獲得一些回饋: 保哥 提到SQL有EXISTS可以取代, hector ♂ lee 則提醒IN可能存在的效能疑慮... 而這些資訊恰巧幫助我對於IN條件查詢效能有了新的體認,讓我不禁要說: 有網路社群真好! 應用上次學會的簡潔IN多欄位寫法,我搞出了類似以下的SQL語句...
IISLog應用案例分享: 統計特定網頁的平均執行時間
【案例需求】 使用者反應近來某些網頁程式"執行時間好像變久了"。OP希望由IIS Log中取得相關數字證實,釐清是程式效能變差需要調校,還是使用者需要一本金剛經培養耐性? 【分析程序】 取得網頁所在IIS近三個月的IIS Log,ex1002*.log, ex1003*.log, ex1004*.log 使用 Visual Log Parser (好物! 可參考保哥的 介紹文 )進行查詢,語法為: select to_string( date , 'yyyyMMdd'...
在.NET 3.5中使用Parallel.For()
網友 KENCHAO 問到" 好威的Parallel.For 可以用在.NET 3.5上"嗎? 微軟在Task Parallel Library CTP版本時代 ,曾提供過相容於.NET 3.5的Microsoft Parallel Extensions for .NET Framework 3.5。但找了一下,官方似乎已不再提供該版本的下載... 但是別氣餒,依據MS Parallel Programming RD小組在2009年11月的PO文,有一個來自個 DevLabs...
用.NET展現多核威力(3) – 佛心TPL之Parallel.For好威
在 前一篇文章 裡,我們驗證了為每個CPU Core開一條獨立Thread並事先分攤好計算工作,可以讓巨量Log10計算程式飆出最高效能! 但是,仔細看看程式碼: int WORKER_COUNT = 2; Thread[] workers = new Thread[WORKER_COUNT]; int jobsCountPerWorker = MAX_COUNT / WORKER_COUNT; for ( int i = 0; i < WORKER_COUNT; i++) { int st...
用.NET展現多核威力(2A) - 一核一緒補充包
在 前一篇多核研討文章 中,用了一個計算1000萬次Log10運算的範例驗證Thread數與Core相同時可以達到最佳效能,網友Google質疑以Log10計算當範例是否用能代表"以運算為主的大量作業",在此做點補充說明。 我想若以茶包射手實事求是的精神,"以運算為主的大量作業"這個命題是有問題的,應該要修正成"不涉及非CPU資源競爭的大量純運算作業"更貼近原意。用白話來解釋,這裡假設的前題是---有一大堆運算工作要處理,每件運算工作彼此獨立可以同時進行...
用.NET展現多核威力(2) - 一核一緒 王者之道?
在 前一篇文章 裡,我們陰了ThreadPool一下,把一個運算十分簡單,但是數量極其龐大的計算需求拆解成無數UserWorkItem交給ThreadPool執行,然後冷眼旁觀ThreadPool在lock機制的消磨下,慘敗給傻瓜都會的單一執行緒寫法,速度足足慢了七倍有餘... lock機制看來是最大的殺手。明明人手充足,卻規定所有人員必須排隊成一列輪流完成某個動作才能繼續工作,當完成工作本身所需的時間很短,則耗費在排隊的時間就顯得漫長而荒謬。這就是前一篇文章所點出的事實。 那麼,在這個案例中,我們應如何改善...
更多文章
下一頁 »
搜尋
Go
<
June 2013
>
Sun
Mon
Tue
Wed
Thu
Fri
Sat
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
【工商服務】
OrcsWeb: Windows Server Hosting
最新回應
2013-06-19 mis2000lab
拒當臉書廣告免費代言人
剛溫(感恩),太受用了~
2013-06-17 Jeffrey
KO範例6 - 陣列元素的新增/移除事件
to 李政忠,經測試應該可行,請參考範例: jsfiddle.net/.../1...
2013-06-16 李政忠
KO範例6 - 陣列元素的新增/移除事件
你好,我想在template裡使用afterAdd事件時,卻一直無法成功,還請指點迷津...
2013-06-14 Jeffrey
TIPS-Uncachable ASP.NET Page
to 小黑, 大部分的情況下,透過瀏覽器重新整理多半能抓到新版css, js,但遇到某些愛搞怪的機器跟環境...
2013-06-14 Jeffrey
JavaScript端的JSON日期轉換
to player, 從源頭改是不錯的攔截點,謝謝補充。 該案例置換的是微軟的日期格式...
2013-06-14 Jeffrey
【笨問題】遠端桌面的鋸齒字
to Phoenix, 居然有同伴,好感動... (握手)
2013-06-13 小黑
TIPS-Uncachable ASP.NET Page
請問黑大,雖然知道在URL加上參數可以讓瀏覽器避免 cache住之前的資料,可是每次發佈都還要...
2013-06-13 Phoenix
【笨問題】遠端桌面的鋸齒字
我也以為是限制@@ 人的適應力真可怕
2013-06-13 player
JavaScript端的JSON日期轉換
如果是經過jQuery去抓資料的話, 可以用這個 www.wiredprairie...
2013-06-13 nowhereman
【笨問題】Windows 8升級專業版及企業版
$ony 的PC與NB的driver是出名的難灌, 順序不對就沒辦法正常運作, 且還有一堆自家only的軟體...
Tags 分類檢視
.NET
AJAX
ASP.NET
ASP.NET MVC
ASP.NET保安
Autofac
Bicycle
Bootstrap
C# 4.0
CODE
Coding4Fun
Collections
Community Server
CSS
Debug
EF
English
Entity Framework
Excel
Hiking
HTML5
IE
IIS
Javascript
jQuery
KB
Kendo UI
knockoutjs
Life
Linq
Live SDK
MCE
MCSE
Mobile
NuGet
Office 2013
Open XML
ORACLE
Performance
PowerShell
Reporting Service
RESTful Web Service
Security
Sharepoint
SignalR
Silverlight
Skype
SQL 2000
SQL 2005
SQL 2008
T4
TechEd
Telerik MVC
TFS
ThinkPad
Tips
Tools
Trouble-Shooting
Unobtrusive Validation
VBScript
Virus
Vista
Visual Studio
VS.NET 2003
VS11
VS2005
VS2008
VS2010
VS2012
Web
Windows 2008
Windows 7
Windows 8
Windows Phone
Work
WP7
WPF
XAML
中文編碼
慢跑
潛盾機
科學實驗
風花雪月
關於作者
一個醉心技術又酷愛分享的Coding魔人,十年的IT職場生涯,寫過系統、管過專案, 也帶過團隊,最後還是無怨無悔地選擇了技術鑽研這條路,近年來則以做一個"
有為的中年人
"自許。
文章典藏
June 2013 (10)
May 2013 (20)
April 2013 (22)
March 2013 (15)
February 2013 (9)
January 2013 (10)
December 2012 (14)
November 2012 (11)
October 2012 (12)
September 2012 (30)
August 2012 (16)
July 2012 (17)
June 2012 (18)
May 2012 (9)
April 2012 (15)
March 2012 (12)
February 2012 (8)
January 2012 (6)
December 2011 (9)
November 2011 (11)
October 2011 (15)
September 2011 (15)
August 2011 (18)
July 2011 (24)
June 2011 (31)
May 2011 (16)
April 2011 (13)
March 2011 (13)
February 2011 (11)
January 2011 (15)
December 2010 (18)
November 2010 (12)
October 2010 (10)
September 2010 (18)
August 2010 (19)
July 2010 (22)
June 2010 (20)
May 2010 (19)
April 2010 (19)
March 2010 (24)
February 2010 (14)
January 2010 (24)
December 2009 (13)
November 2009 (14)
October 2009 (27)
September 2009 (20)
August 2009 (18)
July 2009 (18)
June 2009 (22)
May 2009 (14)
April 2009 (19)
March 2009 (17)
February 2009 (25)
January 2009 (16)
December 2008 (23)
November 2008 (20)
October 2008 (19)
September 2008 (21)
August 2008 (10)
July 2008 (16)
June 2008 (20)
May 2008 (20)
April 2008 (21)
March 2008 (18)
February 2008 (9)
January 2008 (18)
December 2007 (20)
November 2007 (22)
October 2007 (20)
September 2007 (23)
August 2007 (22)
July 2007 (19)
June 2007 (28)
May 2007 (21)
April 2007 (23)
March 2007 (23)
February 2007 (17)
January 2007 (9)
December 2006 (12)
November 2006 (15)
October 2006 (7)
September 2006 (9)
August 2006 (16)
July 2006 (14)
June 2006 (12)
May 2006 (12)
April 2006 (9)
March 2006 (4)
February 2006 (7)
January 2006 (8)
October 2005 (1)
August 2005 (1)
July 2005 (1)
June 2005 (2)
February 2005 (2)
January 2005 (5)
February 2004 (2)
January 2004 (13)
其他功能
這個部落格
Home
Feedjit live traffic feed
Syndication
Comments RSS