Показать сообщение отдельно
Старый 15.11.2016, 23:45   #8
DarkInside
Разработчик
 
Аватар для DarkInside
 
Регистрация: 08.08.2011
Сообщений: 505
Написано 191 полезных сообщений
(для 369 пользователей)
Ответ: Скорость вызова DLL

Удобно то понятно. Потери скорости где меньше?

Тут оказывается даже если вынести код в функцию (в блице), уже теряется 4% производительности на вызов этой функции. А если функция обращается к другой функции, то уже 8% ... и тд. Сколько будет теряться на DLL?

Вот это: d# = Exp(0.37*Log(d#)) на 4% быстрее, чем вот это:

d# = sqrt#(d#, 0.37)

Function sqrt#(a#, n#)
	Return Exp(n#*Log(a#))
End Function
Кстати, такое извлечение корня у меня на 10% быстрее, чем d# = d# ^ 0.37

А в PB извлечение корня по модулю: Pow(d.d, 0.37) наоборот в 1.5 - 2 раза быстрее, чем Exp(0.37*Log(d.d)). Ну и в 10 раз быстрее, чем в блице. Ну и точность double.

Боюсь предположить, насколько быстр Intel® Fortran Composer XE. Поговаривают, он обходит GCC (С/C++) процентов на 40. И в Cern ПО для обработки данных с коллайдера на фортране.
(Offline)
 
Ответить с цитированием