ИМХО, это микрооптимизация, которую следует игнорировать, пока не будет выполнено все профилирование . В общем, библиотечные процедуры - это не потребители времени выполнения, а ресурсы или созданные программистом функции.
Я также предлагаю больше времени уделять качеству программы и надежности , а не беспокоиться о микрооптимизации. При увеличении вычислительной мощности и увеличении размеров памяти время и время выполнения являются для клиентов меньшей проблемой, чем качество и надежность. Клиент готов дождаться программы, которая выдает правильные выходные данные (или выполняет все требования правильно) и не дает сбоя , вместо того, чтобы требовать быстрой программы, которая имеет ошибки или сбой системы.
Чтобы ответить на ваш вопрос, как уже говорили другие, время выполнения библиотечных функций зависит от разработчика библиотеки, платформы (аппаратного обеспечения) и операционной системы. Некоторые платформы могут выполнять инструкции с плавающей запятой быстрее или в то же время, что и интегральные операции. Некоторые библиотеки делегируют функции операционной системе, в то время как другие упаковывают свои собственные. Некоторые функции работают медленнее, потому что они написаны для работы на различных платформах, тогда как те же функции в других библиотеках могут быть быстрее, потому что они адаптированы для конкретной платформы.
Используйте библиотечные функции, которые вам нужны, и не беспокойтесь об их скорости. Используйте сторонние проверенные библиотеки, а не переписывайте собственный код. Если программа выполняется очень медленно, просмотрите дизайн и профиль. Возможно, вы сможете добиться большей скорости, используя Data Oriented Design , а не Object-Oriented Design или процедурное программирование. Опять же, сосредоточьте свои усилия на разработке качественного и надежного кода, одновременно изучая, как создавать программное обеспечение более эффективно.