10

我正在做一个广泛使用线程局部变量的库。您能否指出一些测试在 C++ 中获取线程局部变量的不同方法的性能的基准:

  • C++0x thread_local 变量
  • 编译器扩展(Gcc __thread,...)
  • boost::threads_specific_ptr
  • 线程
  • 视窗
  • ...

C++0x thread_local 在提供它的编译器上表现更好吗?

4

2 回答 2

1

这些通常实现为线程私有内存空间中数组中的简单偏移量。所以,访问线程特定的变量X,类型T

T y = X;

大致翻译为,

T y = *(T*)(cur_thread.local_tbl[key_X]);

这太简单了,无法期望实现之间的性能有很大差异。也就是说,如果您发现任何此类基准,请在此处跟进。

于 2010-06-12T16:19:12.323 回答
1

您可以随时使用time.h. 在测试性能的东西时它是你的朋友,没有其他可用的东西。

于 2010-06-09T18:22:56.027 回答