摘要:
Cache Lines 如果想编写一个能够在多核上高效率的程序,你就有必要理解Cache Lines.学过《操作系统》应该都知道,CPU从物理内存中读取内容的时候不是每次读取一个字节,而是读取多个字节的数据放入Cache Line之中。一个Cache Line可能是32、64或128个字节(总之是2的指数),并且它们一般都是按照32、64或128字节数对齐的。 值得注意的是,在多核上的Cache Line进行内存更新时可能会出现问题,看下面这个实例:1.CPU1读取内存中一个字节,顺便会将附近的几个字节一起读进Cache Line。2.CPU2读取和CPU1中一样的那个字节,顺带也读取了这个字 阅读全文
随笔档案-2012年8月3日
探秘Java垃圾回收机制
2012-08-03 00:03 by java20130722, 159 阅读, 收藏,
摘要:
垃圾收集GC(Garbage Collection)是Java语言的核心技术之一,但在JVM的内部运行机制上看,Java的垃圾回收原理与机制并未改变。垃圾收集的目的在于清除不再使用的对象。GC通过确定对象是否被活动对象引用来确定是否收集该对象。GC首先要判断该对象是否是时候可以收集。两种常用的方法是引用计数和对象引用遍历。 引用计数收集器 引用计数是垃圾收集器中的早期策略。在这种方法中,堆中每个对象(不是引用)都有一个引用计数。当一个对象被创建时,且将该对象分配给一个变量,该变量计数设置为1。当任何其它变量被赋值为这个对象的引用时,计数加1(a = b,则b引用的对象+1),但当一个对象的.. 阅读全文
浙公网安备 33010602011771号