2012/11/28

20121128-教訓-程式裡的小細節!

這一次真的是讓我見識到~~細節到這樣的地步!

國壽這一部份的保障資訊存檔的問題,
執行效能我一直無法解決!

而且深信,程式方面已想不到是什麼原因造成,
沒有什麼可以調整的地方!

一直是想往系統環境方面去看起。

而因為我覺得程式沒有地方可以改。
問題就歸於「取資料」「計算保障」這方面耗了很多時間
要改很難改


因為自已為沒地方可以改,所以也不會用心去思考!

加LOG去看耗時,也是大功能的去看。

這一次George過來看,
他今天是另一邊忙完後過來,來到這就是六點多~

在他還沒來的時間,我大多是由環境的設定下手,
沒有改善後,就沒法子了。
在一旁寫寫自已的程式!

而我也在想,George過來,還能改到什麼地方嗎??

他過來後,在了解現在慢的狀況,
在討論中,
慢慢引出,在執行批次,一開始的速度OK,但到後段後,時間就會變慢~~~

為什麼後段會變慢??

George打算在一個主要的Function 插Log 旗子!

這個我有做Log時間,是一個一個區塊的時間,

但他不要這樣

他要細到「每一行」程式所花的時間!!!

真的當下覺得........這有用嗎!?只是浪費時間而已~~不認為有用。


在這期間,我在他一旁看,意外發現我自已在「取家庭成員資料」的地方竟呼叫2次!
一開始還不相信是我寫的XDDD
比對之後,看來只有我會寫這個地方。只好自已把它給移除!

這個,只能說沒有心要改的話,是永遠不會注意到這個問題了!!

再來George 埋的Log發現了細節問題!

一個我認為幾乎是「聖經」的程式寫法,竟有問題!!

字串的處理,認為用 StringBuild 去做是理所當然!

所以很常這樣寫
StringBuild  strBuild = new  StringBuild();

而George在這裡前後埋Log,因為這樣,才得以發現這種地方也會出問題!

在批次執行後段,這個 new StringBuild() 竟然要花時間!而且後段有增長的趨勢!!

(註:StringBuild.Clear()也會花時間!!)

因此改成  string strBuild = String.Empty;

String.Empty 也算是在我概念下,視為「聖經」等級的程式寫法。

「宣告字串,就要用String.Empty做初始化」!!

這個 竟然要花時間!而且後段有增長的趨勢!!


直到最後改成,string strBuild = "";

這種寫法,才完全不花時間!!


============================================

一開始自已「沒有想要改」的心態,讓自已看不到問題!!

不要鐵齒!
不要認為不可能!!

這一次被自已打了一巴掌!!

以後心態要是:「去解決問題,而非推托造成問題是XXX原因,我沒辦法改!」

加油!!

自滿的話,最後會很慘的!


0 意見 :

張貼留言