Можно ли удалить _threadhandle из Windows MSVCR90.DLL для однопоточной тестовой программы? - PullRequest
0 голосов
/ 16 июля 2011

Доброе утро. Мы пытаемся использовать пользовательский многопоточный распределитель памяти Google tcmalloc с однопоточным профилем тестирования Windows. Когда мы профилируем тестовую программу, мы наблюдаем много циклов ЦП, затраченных на многопоточные функции _threadhandle и tcmalloc, такие как perftools_pthread_getspecific. Вот пример профиля:

KiFastSystemCallRet cIntersectingGroupCache :: Процесс cIntersectingGroupCache :: BruteForceDeduping cIntersectingGroupCache :: FindIntersection cDedupe :: AccurateNearCompare HashMapanonymous namespace ':: do_free_with_callback станд :: basic_string <голец tcmalloc :: ThreadCache :: Освобождает memcmp HashMap <станд :: basic_string <голец анонимное пространство имен ':: do_malloc std :: _ Treeanonymous namespace ':: LibcInfoWithPatchFunctions <0> :: Perftools_delete анонимное пространство имен ':: cpp_alloc perftools_pthread_getspecific ???????? tcmalloc :: ThreadCache :: FreeList :: Нажмите станд :: _ Tree

Возможно ли для нас перестроить новую версию libtcmalloc.dll с дополнительной оптимизацией компилятора директивы препроцессора, которая не выполняет функции потоков, такие как _threadhandle и perftools_pthread_getspecific? Мы используем определение препроцессора NO_THREADS для сборки libtcmalloc.dll, но мы все еще сталкиваемся с двумя ранее названными функциями, связанными с потоками tcmalloc? Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...