Глядя на вывод callgrind для запуска моей программы, я вижу, что 125% !!!из циклов тратится в _dl_runtime_resolve_xsave'2 (очевидно, часть динамического компоновщика), в то время как 100% тратится в основном.Но это также говорит о том, что почти все время, проведенное внутри _dl_runtime_resolve_xsave'2, фактически потрачено на внутренние методы (self = 0%), но callgrind не показывает никаких вызовов для этого метода.Более того, похоже, что _dl_runtime_resolve_xsave'2 вызывается из нескольких мест в программе, которую я профилирую.
Я могу понять, что некоторое время может быть потрачено за пределами main, потому что программа, которую я профилирую, использует шаблон прототипа, и многие прототипы объектов создаются, когда загружается их динамическая библиотека, но это не может быть где-то близко к 25% времени этого конкретного прогона (потому что если я выполняю этот прогон без входных данных, это займет на порядки меньше времени, чем прогон, который я профилирую сейчас).
Также программа не использует dlopen для открытияобщие объекты после запуска программы.Все должно быть загружено в начале.
Вот скриншот окна kcachegrind:
Как я могу интерпретировать эти вызовы _dl_runtime_resolve_xsave'2?Нужно ли беспокоиться о времени, потраченном на этот метод?
Спасибо за вашу помощь.