精華區beta CSSE 關於我們 聯絡資訊
※ 引述《pobanetra (囧rz)》之銘言: : 小弟我不是學CS的 : 對程式的運用僅止於作系統模擬或數值分析 : 有的時候再跑程式 : 往往會覺得自己寫的程式performce不是很好 : 不知道軟體工程內有沒有提到增進程式效能的方法? : 小弟我只知道減少loop的比率會讓程式更有效率 : 可是往往卻不得不用大量的loop 這部份不算軟體工程的範圍, Compiler或是CPU的最佳化太過低階, 要花的功夫太大, 很難說效能可以改進多少. 比較合理的, 可以實踐的還是資料結構和演算法設計, 一般來說處 理大量資料狀況下的瓶頸在虛擬記憶體的搬移, 假設有1G的資料, 不可能一次配置1G的記憶體, 然後寄望作業系統幫你處理掉所有記 憶體管理的問題, 要看你處理資料的性質自己設計適當的資料結構, 做一部份記憶體的管理. 程式設計上可考慮, 系統內部有多層次Cache, 處理的資料集中在 local部份可以透過Cache比較快, 越少page fault也會越快, 如果 大量用到硬碟上的虛擬記憶體就要再慢上數十倍, 所以資料結構和 記憶體管理配合計算的性質就很重要. 資料結構和演算法裡面有專章討論演算法的計算複雜度, 也就是程 式處理資料的效率問題, 所討論的排序, 搜尋, 演算法, 很多東西 都是效率相關的, 例如 divide and conquer概念, 外部排序等等 可能有些幫助.. -- 人人心中都有一個玉嬌龍 人人心中都有一個綠巨人 人人心中都有一座斷背山 ▁▂▃▄▅▄▃▂▁▁▂▃▄▅▆▇▆▅▄▃▂ ▁▂▃▄▅▆▇███████████▇▆▅▄▃▂▁██████ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.175.235.191