2008年8月8日 星期五

[數量]對程式設計的影響

記得讀書時, 老師曾經在課堂上問及有甚麼因素會影響一個程式的設計, 其中用戶要求, 預算, 人手, 作業平台, 程式語言等等都有人答了, 輪到我時便選了"使用人數及數據量"作答. 怎知老師立即搖頭說如果運算方法正確, 使用者人數及數據量是不會影響程式運作, 所以不應列為程式設計的考慮. 當時我已不以為然, 嘗試再作討論, 但老師只輕輕帶過, 我也無謂糾纏下去. 誰不知現在常常踫到的, 就是那些沒有考慮使用人數及數據量設計出來的程式所帶來的問題. 其中一個例子, 公司有一個負責幾何計算的程式, 當獨立測試時沒有問題, 能夠順利運作計算出大家想要的結果. 但當大量執行時, 卻發現它像"當"機一樣, 遲遲不能運算完成. 細查之下, 原來每一個運作中的程式都在等候 I/O, 根本沒有在做幾何運算. 究其原因, 程式在運作過程中會把一些暫存資料寫到硬碟以方便整合計算, 只有一個程式在運作時當然沒有問題, 但當大量同類的程式一起運行, 便會超出系統的負載能力.

其實不講單一例子, 世界上有些系統出問題也是由於超出負荷, 而內裡原因為程式對負載考量不足也是有的. 想當年我讀書時網路也不算是新鮮品, 教授程式設計時都不對使用人數及數據規模加以討論, 仍只停留在單人模式的桌上電腦運作, 也難怪現在的程式有這方面的問題.

沒有留言: