2023-05-03 11:22 PM 4 4,900
上回做完 BFS 程式面試考題,我萌生挑戰重讀演算法書的想法。其實,多年前我有試過一回,在圖書館借了些書回來唸,想拉近自己跟本科生的距離。但自學不比在校修課,沒有被當的壓力,學完又沒什麼機會馬上應用,加上東西又枯燥就... 你知道的。 臉書留言讀者推薦了一本「改變世界的九大演算法」,為重讀念頭灑了一...
2023-05-01 09:00 AM 2 5,239
陸續看過 .NET ThreadPool 執行緒數量增減模式,也見識了 async/await 提高 Thread 使用率的神奇效果,將焦點放在 ASP.NET 網站,實際測試 async/await 是否能提高 ASP.NET 效能?ThreadPool.SetMinThreads() 是否能幫助...
2023-04-30 07:18 AM 3 33,793
設定 Windows 防火牆時,我常會被公用、私人、網域這三個網路位置(Network Location)迷惑... 印象中新增網卡或連上新網路時,Windows 會跳出詢問決定公用或私人,然後防火牆設定得網域、私人、公用三種分開管理。三者有什麼差別?為什麼跟防火牆關聯這麼深?我一知半解,決定今天...
2023-04-29 08:12 AM 1 9,717
在深入 .NET ThreadPool 執行緒數量管理文章中,為了讓程式範例能跟 ThreadPool 緊密關聯,也避免失焦,我採用 ThreadPool.QueueUserWorkItem() 示範將作業拋到 ThreadPool 執行。這篇文章則將場景拉到時間拉到現代,看看 .NET Frame...
2023-04-26 11:45 PM 7 9,229
前陣子有支模擬面試 YouTube 影片引發討論,不少讀者認為,連基本 BFS 演算法跟 Big O 都不熟,在真實世界的程式面試必死無疑。 雖然在資訊業打滾了幾十年,我因為不是本科系,在學校沒學過資料結構跟演算法這些東西(這對資訊本科生屬肌肉記憶等級吧),沒正式學過 BFS/DFS,學習及寫程式...
2023-04-25 09:18 PM 1 8,333
.NET 有個效能調校技巧是透過 ThreadPool.SetMinThreads() 設定 ThreadPool 的最小工作 Thread 數,這個做法為什麼能改善效能?何時有效?這篇文章會用實驗來理解與驗證。 當程式需要多工執行大量工作,除了自己弄 Queue 建執行緒,更簡便的方法使用 Thr...
2023-04-23 06:36 PM 1 5,871
前陣子分享過用 K6 跑壓力測試逼 IIS 噴出 HTTP 503,也展示如何從壓測到產出報表一氣喝成的壓力測試結果圖表自動化工具。前幾天跟同事討論被提醒 - 壓力測試畢竟是備戰演習沙盤推演,正式網站被塞爆噴 503 的案例才是最真實的情境,當下的數據更值得分析研究,更具參考價值。 圖片來源 有道...
2023-04-22 09:41 PM 2 2,365
讀者 Ho.Chun 問了一個問題:在 EF Core 透過 DbContext.Database.GetDbConnection() 取得的連線字串,使用完需不需要關閉? 依我的理解,DbContext.Database.GetDbConnection() 的用意是允許我們存取底層連線物件,透過 ...
2023-04-22 09:51 AM 3 2,819
Bing Chat 除了跟 ChatGPT 一樣可以聊天,還有個撰寫功能,能幫你寫段落、電子郵件、部落格文章跟構想... 修蛋幾壘! 叫 ChatGPT 寫部落格文章是什麼意思,把彰顯個人風格、抒發心情、推展想法、傳承知識的神聖工作丟給機器做是什麼意思?這叫部落客怎麼活? ChatGPT 寫的東西...
2023-04-20 10:23 PM 0 2,509
在某些特殊情境下我們會想將 .NET dll/exe 反組譯成 CIL,或許是想研究 .NET 編譯行為,或許是要魔改無原始碼程式搞暴力破解。總之,.NET Framework 時代有 IL 反組譯及組譯工具 - ildasm.exe、ilasm.exe,安裝 Visual Studio 後開個 D...
2023-04-18 11:40 PM 0 6,068
隨著壓力測試規模放大,客戶端的瓶頸也冒出來了。我遇到的狀況是在接連數次測試過程中,K6 出現 An operation on a socket could not be performed because the system lacked sufficient buffer space or be...
2023-04-16 11:26 PM 0 1,700
昨天介紹了 POSIX 參數慣例,它是主流 CLI 工具一致遵守的參數語法規則,以 git 或 dotnet 為例,指令工具要能指定動作命令,選項名稱支援 --long-option-name 或單一字元 -o 兩種表示法,選項可接參數值 (--verbosity n)或可加可不加,參數選項可自由調...
2023-04-16 12:00 PM 5 7,498
講到指令工具參數,Windows 老人的印象有可能還停留 /?、/S 之類的斜線表示法,例如: DIR /S D:\TEMP XCOPY D:\Data E:Data /S /E /H 但如果有追隨近年的開發主流,會發現 Windows 以外的世界,CLI 工具其實都在用另一套差不多的參數表示法:...
2023-04-14 11:09 PM 2 4,334
先前示範了用 K6 對網站逐步加壓到噴出 503,當時我寫了一小段 C# 解析串流 JSON 檔轉成 CSV 並用 Excel 繪製圖表: 效果還不錯,但每次測試完得跑 C# 程式、複製 CSV 數字、貼到 Excel 範本,做完一串手工藝才能拿到圖表。我心中的壓力測試程序會是:先測一次當基準,升...
2023-04-13 11:46 PM 0 7,493
工作機升級後,64G RAM 配上 7GB/s 高速讀寫 SSD,建 VM 跟喝水一樣,以前建 VM 灌 Windows 通常要泡杯茶慢慢等,現在兩三分鐘搞定。裝機速度變快,其他沒效率的地方就現形了。 像是 VM 需要加入測試網域,裝機後需手動改固定 IP、設定 DNS、更改電腦名稱,嚴格說來操作不...
2023-04-12 10:27 PM 0 3,043
開始前先聲明,要將 K6 測試結果繪成圖表,官方其實有建議做法,例如: 使用 K6 Clound 圖片來源 或串接 InfluxDB/TimescaleDB/Prometheus 整合 Grafana 分析監控面板。 圖片來源 K6 有提供支援套件與相關說明,透過一些安裝設定就有現成的精美報表可...