pretty code

2020年10月15日 星期四

小程式也要講究效率

自從不用 C 寫 Parser 後,我已經習慣用 Re 來處理 Log,雖然明知道每次重覆在同一份 Log 中找尋不同資料是很愚蠢的事,應該只 parsing 一次後就把資料儲存起來!但自己寫的小程式自己用倒也還好,短短幾行 Code 看起來也比較舒服XD

後來另外一個主管看到這樣的小程式在做實驗時幫助判斷問題很方便,就延用了我的小程式做他自己想做的實驗,一直以來倒也相安無事。

直到有一天,因為他做了一些變化,導致 Log 容量膨脹許多,故開始想要節省時間,於是請我幫忙改進,我原本以為純粹是後續報表畫圖很花時間,即使我做了改進,但時間可能也節省不到 20%?不過不改不知道,單純測試 103 個單位,便少了 93% 的時間,改進後沒有再接到需求應該是有達到目標?因為不是我要用的,我也沒有繼續追問下去XD

最近都在搞 ESP8266,我發現這樣下去不行?還是來發篇文章灌個水,順便解答我心中的疑惑。

就以我原本的小程式來測試改進幅度!

改進前:13 分 33 秒。

改進後:03 分 11 秒。

計算之下,少了 76 % 的時間。

再繼續細分下去,一次的 parsing 動作可以節省 4.2 ms,只要執行次數夠多,花費時間還是很可觀的。

難怪古人說:勿以善小而不為,勿以惡小而為之。戒之戒之。

沒有留言: