作者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
1F:推 supermark:有时候 efficient 和 maintainable 是 trade-off? 03/23 09:31
2F:推 moonshade:C++这种问题比较好解决...不过我们的code是该死的C... 03/23 13:11
3F:→ moonshade:工程师倾向minimum effort的作法...任何project上面的 03/23 13:12
4F:→ moonshade:主管都倾向用minimum effort的方法来解...所以就变这样 03/23 13:12