看板 NTUGIEE_EDA 關於我們 聯絡資訊
※ 引述《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