Вы знаете о некотором тесте действий различных способов получить локальную память потока в C++?

Я делаю библиотеку, которая делает широкое применение локальной переменной потока. Можете Вы указывать на некоторые сравнительные тесты, которые проверяют производительность различных способов получить локальные переменные потока в C++:

  • C++ 0x thread_local переменные
  • расширение компилятора (Gcc __ поток...)
  • повышение:: threads_specific_ptr
  • pthread
  • Windows
  • ...

C++ 0x thread_local работает намного лучше на компиляторах если это?

10
задан Vicente Botet Escriba 26 May 2010 в 09:57
поделиться

2 ответа

Вы всегда можете использовать time.h. Это ваш друг, когда вы тестируете производительность, а ничего другого нет.

1
ответ дан 4 December 2019 в 04:36
поделиться

Обычно они реализуются как простое смещение в массиве в области частной памяти потока. Таким образом, доступ к переменной X , зависящей от потока, типа T ,

T y = X;

примерно переводится в,

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

, что слишком просто, чтобы ожидать больших различий в производительности между реализациями. Тем не менее, если вы найдете такие тесты, просмотрите их здесь.

1
ответ дан 4 December 2019 в 04:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: