這是我自己常遇到的問題 - 先寫了專案雛型,用 git init 就地建立 Git Repository,在第一次 Commit 放入雛型版本,之後陸續修改加入新的 Commit。 專案第一次上線用 git diff 產出 Compare List,卻發現我無法列舉所有專案檔案。原因是產生 git ...

【前言】 這是一次難得的辦案經驗。 上週處理 Out Of Memory 茶包在爬文時查到好幾篇文章提到 「.NET 32bit 程式的可用記憶體上限是 800M」,與我所知的 1.6G 明顯不符,但官方文件卻指證歷歷,在我心中成為不解之謎。 想挖掘真相,但發現自己根基不穩技能不足,第一次為了破案去...

今天講另一個大家可能遇過的狀況:程式噴出 Out Of Memory 記憶體不足錯誤,也確信它用到大量記憶體,但打開工作管理員檢查,該程式的記憶體用量卻只有幾百 MB,看起來很平常。 要探討這個問題,先要用範例程式重現情境。 昨天文章最後有個持續建立大型 byte[] 物件耗光記憶體的程式範例,32...

昨天文章提到,85000 Bytes 以下的物件會建立在 SOH、超過的大型物件則會建立在 LOH。LOH 與 SOH 的一項重要差異是 - LOH 會隨 G2 回收回收不用的物件記憶體,但不會進行壓實(Compact,搬移物件讓物件緊密相鄰),因此被清掉物件會形成空洞穿插在留存物件間,空洞可重複利...

前幾天解決完非典型 Out Of Memory 茶包,感覺自己雖然寫了這麼多年 .NET,對記憶體管理的了解仍偏虛浮,只知道背後有個強大的 GC 會負責找記憶體空間放物件,物件不用了會自動回收空間,完全不用我們操煩。需要物件時 new 一下,不要殘留變數、屬性指向超出變數範圍(Scope)的物件,....

幫忙看了一個 Excel 批次匯出作業記憶體不足錯誤,是我之前沒見過的樣態,增廣見聞之餘順手記錄一下。 問題情境是有個能批次匯出 Excel 報表檔的 Windows Form 程式,負責查詢資料庫後以來源代碼為單位,一個來源匯成一個 Excel 檔案,程式以 VB.NET 撰寫 (哈,好久沒看到你...

玩了一陣子 SSD1306 OLED 顯示器,也玩了幾回點陣中文字型,是時侯把它們結合在一起 - 試試在單色 OLED 上顯示中文。 之前我主要用 Adafruit 驅動程式庫接 SSD1306 OLED,其文字顯示侷限在 ASCII 字元集,要顯示 Unicode 字元,大部分人會使用 U8g2 ...

Windows 剛重新開機,登入先開好 Chrome 準備 Google 爬文,還在想關鍵字時聽到筆電散熱風扇聲變大,莫非有程式在吃 CPU? 開啟工作管理員證實了這點,而兇手意外是停在 Google 首頁什麼事還沒做的 Chrome,正在耗用 50% ~ 90% CPU,起初還以為被埋了程式挖礦,...

即便前端發展已十分成熟,幾乎無所不能,但仍有些必須依賴 ASP.NET WebForm 的場合 - 例如,在前端專案中整合既有系統的 WebForm 網頁。如果該系統成熟且穩定,年資還比你多三倍,嚷著把它換掉改用前端重寫,通常老闆想換掉的會是你。另外,有些技術目前只有 WebForm 解決方案,Re...

要徹底惹毛急性子使用者,我有個好法子 - 讓程式跑慢一點,然後不要回報執行進度,等上幾次,對方便會變身浩克怒摔滑鼠鍵盤,嚴重一點說不定會氣急攻心中風身亡,別人我不敢說,這招對我絕對有效。 反之,開發程式遇到等待的耗時作業,即時回報處理進度可大大安撫使用者心情,因而願意耐心等待,依經驗,只要保持幾十秒...