Я использую API-интерфейс POSIX dlopen
/dlsym
для загрузки динамических библиотек во время выполнения, а затем вызова функций из этих библиотек по имени.Должен ли я кэшировать возвращаемое значение dlsym?
Хорошая идея, с точки зрения производительности, сохранить результат dlsym
где-нибудь? Или dlsym уже делает свое собственное кэширование и добавит еще один слой, который будет бесполезным или даже вредным? Функции можно было бы назвать многими, много раз, но у меня действительно нет способа заранее знать, какие из них или как часто они будут вызваны.
Спасибо!
Преждевременная оптимизация - это корень всего зла. Не делайте ничего, пока вы не увидите * dlsym, вызывающий проблемы. – thiton
Я думаю, вы должны помнить о ценности, но это не имеет никакого отношения к производительности. Просто имеет смысл, что код установки определяет нужные вам указатели функций, а затем код просто вызывает их. – ugoren
@ugoren: К сожалению, я заранее не знаю, какие функции будут использоваться (я даже не знаю, из каких библиотек они будут поступать). –