首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

由一道淘宝面试题到False sharing有关问题

2013-09-08 
由一道淘宝面试题到False sharing问题今天在看淘宝之前的一道面试题目,内容是在高性能服务器的代码中经常

由一道淘宝面试题到False sharing问题


今天在看淘宝之前的一道面试题目,内容是

在高性能服务器的代码中经常会看到类似这样的代码:

解决方法很简单:
把每个项凑齐cache line的长度,实现隔离.

12345678typedefunion {    erts_smp_rwmtx_t rwmtx;    byte cache_line_align__[ERTS_ALC_CACHE_LINE_ALIGN_SIZE(                sizeof(erts_smp_rwmtx_t))];} erts_meta_main_tab_lock_t;或者_declspec (align(64)) intthread1_global_variable;__declspec(align(64)) intthread2_global_variable;

这就是为什么在高性能服务器中到处看到cache_line_align, 号称是避免cache的trash.

类似valgrind和intel vtune的工具可以做这个层次的性能微调.

(淘宝核心系统博客:http://rdc.taobao.com/blog/cs/?p=523)(英文文献资料网址:http://software.intel.com/en-us/articles/avoiding-and-identifying-false-sharing-among-threads/ 或者http://software.intel.com/sites/default/files/m/d/4/1/d/8/3-4-MemMgt_-_Avoiding_and_Identifying_False_Sharing_Among_Threads.pdf)


   

热点排行