作者Donnie ( XD)
看板NTUGIEE_EDA
標題Re: [問題] 記憶體管理...
時間Sun Mar 23 09:19:08 2008
※ 引述《moonshade (一隻歐拉貓)》之銘言:
: 1.
: 用 calloc 之類的東西來要單一個linklist item的記憶體,
: 結果calloc了比實際使用記憶體還多兩倍左右的記憶體,
: 如果知道這個list很長的話,應該用mem page去排。
: 用calloc的話會浪費header和padding的空間
如果用 STL 把 memory allocation 隱藏起來就沒事了。
: 2.
: 可以用int index卻用了pointer,
: int 可以指到4G,當今應該還沒有design
: 多到超過4G的instance or rectangle,
: int 跟 pointer 差兩倍,一個linklist item
: 大小會差兩倍。
大部分在比較的時候都是用 32 bit 的機器...,沒想到後來換 64 bit。
pointer 就變成兩倍了。
: 3.
: 喜歡用四個方向的data structure 來表示空間
: 例如
: struct CELL{
: CELL up;
: CELL down;
: CELL left;
: CELL right;
: };
: 4個pointer 就吃掉四倍了...
: 這種東西sort完用index array來排就好了
: 排x 和y 方向的index array,不要用pointer
: 至少省一半以上
: (INDEX ARRAY 請參考CSC (Compressed sparse column)和CSR matrix )
似乎要看實際的應用?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.174.0.35
推 supermark:有時候 efficient 和 maintainable 是 trade-off? 03/23 09:31
推 moonshade:C++這種問題比較好解決...不過我們的code是該死的C... 03/23 13:11
→ moonshade:工程師傾向minimum effort的作法...任何project上面的 03/23 13:12
→ moonshade:主管都傾向用minimum effort的方法來解...所以就變這樣 03/23 13:12