精華區beta Programming 關於我們 聯絡資訊
※ 引述《freaky.bbs@ptt.cc (jon)》之銘言: > C++ 的確可以自行撰寫 custom allocator 來配置記憶體,不過又回到老問題了, > unmanaged code 什麼事都可以做,要寫出一個不會有 heap fragmentation > 的 allocator 是有實際上的困難的,最佳化也是,對於無從預測的行為要如何 > 最佳化? 你把最佳化當成是無上限的喔 最佳化並不是 cpu 花下去, code 就無限制的越來越快 就算是 profiler 把所有熱點都找了出來, 最佳化還是有限的 最多就是幫你省點 ram/cache, 其它的還是要人自己去改 最佳化並不能幫你更改程式的流程 何況 jit 的 profiler 只是把熱點用比較好的最佳化, 非熱點用直譯或省 cpu 的無最佳化編譯 目的只是為了省 jit 占的 cpu time, 讓 loading 快一點, 並不是要超越 compiler profiler 本身也是 cpu 的負擔 garbage collection 也不是萬能的, 雖然說像 java 沒有指標, 可以把記憶體全部重排搾出空間來, 但這樣 jit 產生的 code 也要全部重來, 所以實作上也不能如此, 寫 code 的人還是要注意分配記憶體 clr 更是無法避免 heap fragmentation, 指標的值一但拿來用, 你要如何收回中間的 gap? -- ┌─────KKCITY─────┐  找歌最方便 KKBOX 歌詞搜尋!! bbs.kkcity.com.tw \^_^ / http://www.kkbox.com.tw └──From:59.120.53.7 ──┘   唱片公司授權,音樂盡情下載 --