自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(3)
  • 收藏
  • 关注

原创 程序性能优化手段-实际代码案例1

  在前两篇中,分别介绍了通过数据分片和避免伪共享两种方法来增加程序性能。现在来看一个实际的代码案例。   在Windows内核中,有一些带CacheAware的函数,包括RundownProtection和PushLock系列的函数。顾名思义,这些函数是进行了Cache友好的优化,其中包括了对多核进行数据分片以及CacheLine大小对齐的内存块。   我们来看一下这些函数是如何工作的吧,这...

2018-03-30 07:34:21 1214

原创 程序性能优化手段-避免伪共享

  当分配数个变量或者定义数个全局变量时,这些不同用途的变量很可能会被分配到很近的地址空间上,会导致CPU在读取时,他们会处在同一个Cache line中。如果这时一个CPU上的线程在操作其中一个变量,而另一个CPU上的线程在读另一个变量,将导致读线程CPU不得不和写线程CPU进行一次缓存同步后才能将数据读取出来,这会导致增加缓存开销和总线开销,降低程序效率。这就是并发编程中常碰到的False s...

2018-03-28 21:47:24 689

原创 程序性能优化手段-共享数据的拆分

  很多情况下,多个线程需要对一块内存进行大量的写操作,肯定是需要同步机制的支持的。即使是简单的加减法也需要原子锁的同步支持,其他情况下可能还需要其他更重量级锁的支持。   除此之外,不同的CPU对同一块内存的写操作也会造成CPU之间的缓存同步,这会大大加重总线负担从而影响程序的效率。详细内容可以参考这篇   这种情况下,可以对这块共享内存进行拆分,既每一个CPU都维护自己的一块内存,这个内存...

2018-03-27 22:04:06 254

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除