Browse by Tags
All Tags
»
Performance
(
RSS
)
.NET
AJAX
ASP.NET
Entity Framework
IE
IIS
Javascript
jQuery
KB
Linq
ORACLE
Reporting Service
SQL
SQL 2008
Tips
Trouble-Shooting
Visual Studio
VS2012
VS2013
使用 DebugDiag Tools 分析 ASP.NET 站台記憶體耗盡問題
同事報案,某測試站台不定期會發生 OutOfMemeoryException 記憶體不足錯誤,接獲通報立刻趕往事故現場,問題網站已吃掉 1.8GB 記憶體,差不多是 32 位元模式可用記憶體的上限。廢話不多說,開啟 32 位元工具管理員(C:\Windows\SysWOW64\TaskMgr.exe 參考 ) 擷取 Memory Dump 檔。 從工具箱搬出 CPU/Memory 茶包分析的小型戰術核武 - DebugDiag 2 Tools ,之前處理的都是 CPU 滿載案例,記憶體用盡分析倒是頭一遭...
dynamic 參數之效能損耗實測
依據 前篇文章 :參數傳入 dynamic 會讓函式傳回值也變成 dynamic,導致無法使用 LINQ Lambda 運算式。文末提到,依據 方法多載(Method Overloading)與 dynamic 一文的研究心得,.NET 呼叫函式時若遇到參數為 dynamic 時,將改用System.Runtime.CompilerServices、System.CSharp.RuntimeBinder 命名空間物件與方法間接觸發,程序曲拆繁瑣許多。由此推測,參數傳入 dynamic 型別肯定會產生效能損耗...
使用非同步處理提升資料庫更新速度
來自同事的資料庫程式效能調校案例一則。 情境為一支同步來源及目的資料表的排程,先一次取回來源及目的資料表,逐一檢查資料是否已存在目的資料表,若不存在即執行Insert,若存在則執行 Update 更新欄位。因 Insert/Update 之前需進行特定轉換,故難以改寫為 Stored Procedure。排程有執行過慢問題,處理四萬筆資料耗時近 27 分鐘。 程式示意如下: foreach (var src in srcList) { try { var target = findExistingData...
SQL效能調校經驗一則
使用者報案,某網頁效能變得奇慢無比,簡單的上線公告查詢耗時超過兩分鐘,追查後抓出問題查詢如下例: select case when convert ( varchar ,u.StartDate,108)= '00:00:00' and convert ( varchar ,u.EndDate,108)= '00:00:00' then convert (datetime, convert ( varchar ,u.EndDate,111))+1 else EndDate...
SQL筆記:再談動態WHERE條件
前一篇文章 探討了「WHERE 1=1動態查詢條件組裝」的效能問題,並介紹如何利用C#語言特性簡單寫出沒有多餘WHERE 1=1的馬甲線SQL指令。而在前文提到的Code Review會議,還有一招不需要組裝WHERE指令的做法也被提及。 //REF: http://goo.gl/SBF1Wi by 91 /// <summary> /// 當資料物件為null時傳回DBNull.Value /// </summary> /// <param name="obj"><...
SQL筆記:WHERE 1=1會拖累效能嗎?
稱不上DB咖的我,反常地連寫兩篇SQL筆記,其實都是研究「動態產生SQL查詢條件」議題的副產品,這篇才算步入正題,鴨架子湯先來兩碗,烤鴨才上桌,哈!但這樣安排是對的,以下探討有一部分需要先前筆記的基礎才好聊下去。 兩週前,參加一場Code Review討論,會中大家剛好聊到「動態產生SQL查詢條件」這檔事兒。它的情境是:使用者在操作介面上有多項條件選擇,例如:日期、類別、關鍵字,每個條件使用者可選擇輸入或不輸入(不輸入代表不限定)。從程式的角度,使用者依輸入條件不同,可能形成以下幾種SQL查詢條件...
SQL筆記:Literal, Variable與Parameter
繼續研究不同SQL寫法對執行計劃的影響。 如果大家讀過 上一篇筆記 ,就會知道以下兩則查詢將使用不同的執行計劃,前者走Clustered Index Scan,後者則是Index Seek + Key Lookup。 SELECT ProductID, OrderQty FROM Sales.SalesOrderDetail WHERE ProductID = 870 --4688筆 SELECT ProductID, OrderQty FROM Sales.SalesOrderDetail WHERE...
Parallel.For翻船事件剖析-使用Concurrency Visualizer
網友Loops 留言 分享了一段程式:使用Parallel.For進行平行運算,原本測試平行運算速度勝過循序運算,卻迴圈加入一行Console.WriteLine("{0}", index)後情勢逆轉,跑得比循序迴圈還慢! 直覺推測此一現象肇因於Console為共用資源,多執行緒同時存取時涉及資源鎖定、協調同步、Context Switch等運作機制,衍生額外計算及IO。當平行處理邏輯複雜度不高,這些額外成本抵消掉平行處理的效益,甚至弊大於利,最終導致執行效率比循序處理還差。這點在...
筆記-使用VS2013解開.NET程式CPU衝高謎團
前幾天,幫同事追查 .NET 程式 CPU 衝高問題,才發現 Visual Studio 2013 效能分析工具真是威力強大,特筆記備忘順便分享。原本想拿實務案例說明,但考量太多無關細節會失焦,所以我弄了一個簡單程式當靶機練習射擊: using System; using System.Collections.Generic; using System.Linq; using System.Security.Cryptography; using System.Text; namespace CPUSharMon...
迴圈比對條件的陣列長度該不該用變數?
前幾天看到關於陣列跑迴圈時,比對條件裡陣列長度改用變數提升執行效率的討論。亦即 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...
更多文章
下一頁 »
搜尋
Go
<
January 2021
>
Sun
Mon
Tue
Wed
Thu
Fri
Sat
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
31
1
2
3
4
5
6
【廣告】
OrcsWeb: Windows Server Hosting
最新回應
2018-09-20 接手老專案的菜鳥
Windows 停用 TLS 1.0 之配套作業整理
黑大,謝謝您!
2018-09-20 Andy
KO範例6 - 陣列元素的新增/移除事件
Dear 黑暗大 感謝您,已成功將count後的數值寫入資料庫 利用您提供的方法...
2018-09-19 Jeffrey
KO範例6 - 陣列元素的新增/移除事件
to Andy, 如果你 ASP.NET 端是用 PostBack 方式取值,最簡單的做法是將...
2018-09-19 Andy
KO範例6 - 陣列元素的新增/移除事件
Dear 黑暗大 您好 我設計一個網頁,裡面有一些TextBox,其中還有如此範例的動態表格...
2018-09-18 Jeffrey
Windows 停用 TLS 1.0 之配套作業整理
to 接手老專案的菜鳥, support.microsoft.com/.../support...
2018-09-18 接手老專案的菜鳥
Windows 停用 TLS 1.0 之配套作業整理
黑大: 我有個系統是.NET 2.0開發的,如果安裝了.NET 4.5/或者4.6以及ADO...
2018-09-17 Jeffrey
CODE - WebClient 下載檔案自動取得檔名
to Slash, 感謝提醒,程式已修改強化。
2018-09-16 Slash
CODE - WebClient 下載檔案自動取得檔名
雖然與你分享這段小程式的目的不同,但還是要提醒Regex.Split這邊會有RFC5987的問題...
2018-09-06 打雜工程師
ASP.NET Core 值得學嗎?
黑大,我再跟BOSS討論看看,謝謝您^^
2018-09-03 Jeffrey
ASP.NET Core 值得學嗎?
to 打雜工程師, 1) 如果系統上線時程吃緊且不容閃失,用 ASP.NET MVC...
Tags 分類檢視
.NET
.NET Core
AJAX
Android
AngularJS
ASP.NET
ASP.NET MVC
ASP.NET保安
Autofac
Bicycle
C# 4.0
CODE
Coding4Fun
Collections
Community Server
Cordova
CSS
Dapper
Debug
EF
English
Entity Framework
Excel
Hiking
HTML5
IE
IIS
Java
Javascript
jQuery
JSON
KB
Kendo UI
knockoutjs
Life
Linq
Live SDK
Lucene.Net
Mobile
MSDTC
NLog
NuGet
OAuth
Open XML
ORACLE
Performance
PowerShell
Reporting Service
RESTful Web Service
Security
Sharepoint
SignalR
Silverlight
Skype
SQL
SQL 2000
SQL 2005
SQL 2008
SQLite
T4
TechEd
TFS
ThinkPad
Tips
Tools
Trouble-Shooting
TypeScript
Unobtrusive Validation
VBScript
Virus
Vista
Visual Studio
VS Code
VS.NET 2003
VS2005
VS2008
VS2010
VS2012
VS2013
VS2015
VS2017
Vue
WCF
Web
Windows 10
Windows 2008
Windows 2012
Windows 7
Windows 8
Windows Phone
Work
WP7
WPF
中文編碼
慢跑
潛盾機
科學實驗
自動測試
閱讀筆記
風花雪月
關於作者
一個醉心技術又酷愛分享的Coding魔人,十年的IT職場生涯,寫過系統、管過專案, 也帶過團隊,最後還是無怨無悔地選擇了技術鑽研這條路,近年來則以做一個"
有為的中年人
"自許。
文章典藏
September 2018 (5)
August 2018 (12)
July 2018 (8)
June 2018 (6)
May 2018 (19)
April 2018 (14)
March 2018 (10)
February 2018 (10)
January 2018 (14)
December 2017 (22)
November 2017 (12)
October 2017 (16)
September 2017 (9)
August 2017 (13)
July 2017 (16)
June 2017 (17)
May 2017 (9)
April 2017 (13)
March 2017 (15)
February 2017 (14)
January 2017 (12)
December 2016 (8)
November 2016 (11)
October 2016 (15)
September 2016 (11)
August 2016 (19)
July 2016 (16)
June 2016 (14)
May 2016 (20)
April 2016 (13)
March 2016 (15)
February 2016 (11)
January 2016 (16)
December 2015 (12)
November 2015 (15)
October 2015 (14)
September 2015 (25)
August 2015 (16)
July 2015 (13)
June 2015 (11)
May 2015 (12)
April 2015 (15)
March 2015 (17)
February 2015 (9)
January 2015 (12)
December 2014 (12)
November 2014 (15)
October 2014 (12)
September 2014 (22)
August 2014 (16)
July 2014 (17)
June 2014 (18)
May 2014 (11)
April 2014 (10)
March 2014 (14)
February 2014 (14)
January 2014 (4)
December 2013 (12)
November 2013 (11)
October 2013 (13)
September 2013 (15)
August 2013 (12)
July 2013 (13)
June 2013 (16)
May 2013 (20)
April 2013 (22)
March 2013 (15)
February 2013 (9)
January 2013 (10)
December 2012 (14)
November 2012 (10)
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 (27)
May 2007 (22)
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
Syndication
Comments RSS