運動果然能幫助思考,之前有看過一篇新聞是關於維他命D對於腦傳導的功效,所以多曬曬太陽(人只要曬太陽就能夠自己生產維他命D)對於大腦思考是有幫助的,就在回家的時候,突然想到為什麼Gateway效率會這麼低的原因了:Polling果然是不好的設計,如果真的需要用Polling,那就要善用Thread。之前的設計是一個Thread輪詢所有的BS,不過可能在問A時,A沒有東西要送,Gateway反倒被Block,此時若B想送東西給Gateway,就必須等到A突然哪個時候想送東西時才會解開Gateway被Block的狀態。這是上OS時一定都會教到的東西,不過在設計軟體時卻忘掉了,昨晚趕緊跟旻暄講解決方案:一個BS就開一個Thread,就算被Block也只有負責該BS的Thread被Block,其它BS的Thread則不受影響。

  早上到學校,主要是幫韋宏的程式做最後的調整(還是找到些bugs),順便看旻暄修改的狀況,不過...印象中是到十二點半多才看到旻暄,跟他再做一次說明後跟韋宏去吃午餐,本來想去吃建國路上的蚵子麵線和臭豆腐,結果沒開,於是去八德路的蚵仔麵線,沒想到還是沒開,最後跑去吃一番咖哩豬排,今天的豬排就炸的比較好吃,比起之前TPS實驗時買的要好,外脆內嫩,可惜韋宏跟我一樣,吃過兩三次,總覺得咖哩醬汁少了點,味道也就淡了點。

  吃飽後回到研究室沒多久,旻暄就一臉喜悅跑進來,說Gateway的效能問題解決了,於是趕緊上去看程式,看到有點傻眼,Design pattern學是學了,但似乎沒什麼消化,也無法活用,重要關頭,竟然是要程式去睡覺(Sleep)等待所有的BS連線完成,這...完全沒考慮BS可能隨時加進來的情況!乾脆直接幫他改程式,用Observer pattern,每當有BS與Gateway連線,就通知Agent建立Thread處理資料接收,程式改完一測,效率問題確實解決了,ping的時間從原先5xx將到9ms,傳輸率也恢復到應有的水準,Gateway卡了兩個禮拜終於完成了...

  今天雖然沒贏,但是一場好比賽,7:1落後卻能在九局追平,可惜都沒有逆轉的分數進帳,激戰12局平手收場。

創作者介紹

Spirit的異想世界

dbi1463 發表在 痞客邦 PIXNET 留言(0) 人氣()