2009年10月18日

世界上应用最广泛的虚拟机是啥?

摘要: 别说是JavaVM!正确答案:x86vmx86本身是一个硬件vm,它的指令系统是一个vm指令系统,通过翻译层后,才交给下面的risk内核。 阅读全文

posted @ 2009-10-18 16:19 能发波 阅读(154) 评论(0) 推荐(0)

malloc/free 的开销,如何去掉这种开销?

摘要: 一般的malloc实现,对一块已分配的内存,都有两个机器字的簿记,甚至更多。如果不需要排错,理论上讲,只需要一个字长的额外开销,用来记录这块内存的尺寸(放在intptr[-1]处是个好主意)。为什么需要这个开销呢?因为free传入的只是个指针,它不知道要释放多大的内存,因此free内部必须通过某种方式来获得这块内存的尺寸。可以想象,如果用 malloc/free 来作为一个关联数组(map)的分配器,要浪费不少内存。不过好在实际数据的尺寸往往比额外消耗要大很多,相比起来,浪费的比例不算很大,况且现在内存还很便宜。其实,打造一个高效的分配器并不难,难的是它的适用范围(多线程?cell尺寸,chu 阅读全文

posted @ 2009-10-18 15:58 能发波 阅读(411) 评论(0) 推荐(0)

导航