Я делаю библиотеку, которая делает широкое применение локальной переменной потока. Можете Вы указывать на некоторые сравнительные тесты, которые проверяют производительность различных способов получить локальные переменные потока в C++:
C++ 0x thread_local работает намного лучше на компиляторах если это?
Вы всегда можете использовать time.h
. Это ваш друг, когда вы тестируете производительность, а ничего другого нет.
Обычно они реализуются как простое смещение в массиве в области частной памяти потока. Таким образом, доступ к переменной X
, зависящей от потока, типа T
,
T y = X;
примерно переводится в,
T y = *(T*)(cur_thread.local_tbl[key_X]);
, что слишком просто, чтобы ожидать больших различий в производительности между реализациями. Тем не менее, если вы найдете такие тесты, просмотрите их здесь.