|
|
  |
странные тормоза, гнутый компилятор |
|
|
|
Sep 11 2008, 18:33
|
Частый гость
 
Группа: Участник
Сообщений: 153
Регистрация: 25-08-08
Из: Санкт-Петербург
Пользователь №: 39 813

|
при использовании операций с плавающей запятой обнаружил просто жуткие тормоза, вот пример не самой сложной функции - #include "stdlib.h" #include "float.h" #include "math.h" int main_calc() { int D = 1000, N, M; float t = 2.0, Ta = 0, Fmax = 0, F0 = 100, A = 5; for(N = 0; N < D; N++) { Ta += 1.0 / (F0 + A * N); if(2 * Ta + (D - 2 * N) / (F0 + A * N) < t) break; } Fmax = F0 + A * N; return 0; } этот кусок выполняется около 30 секунд (кол-во итераций 106), использование оптимизатора дает выигрышь около 15%, что при такой производительности - как мертвому припарки ( я был в курсе, что гнутый компилятор довольно тормозной, но не до такой же степени ? может это я где то затупил ? спасибо
|
|
|
|
|
Sep 11 2008, 18:53
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Цитата(карамболь @ Sep 11 2008, 21:33)  может это я где то затупил ? Не знаю. Но нас явно толкаете на проявление чудес телепатии - что за процессор, на какой частоте работает, какие у вас основания пологать, что процессор работает именно на этой частоте? "Догадайся мол, сама". Чтож, рискну. Процессор "по умолчанию" AT91SAMS64, по недоразумению работает от внутреннего генератора 32 КГц. А что вы хотели?
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Sep 12 2008, 06:04
|
Частый гость
 
Группа: Участник
Сообщений: 153
Регистрация: 25-08-08
Из: Санкт-Петербург
Пользователь №: 39 813

|
Цитата(Сергей Борщ @ Sep 11 2008, 22:53)  Не знаю. Но нас явно толкаете на проявление чудес телепатии - что за процессор, на какой частоте работает, какие у вас основания пологать, что процессор работает именно на этой частоте? "Догадайся мол, сама". Чтож, рискну. Процессор "по умолчанию" AT91SAMS64, по недоразумению работает от внутреннего генератора 32 КГц. А что вы хотели? процессор AT91SAMS256, в данный момент работает на частоте 48МГц
|
|
|
|
|
Sep 12 2008, 09:56
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Цитата(карамболь @ Sep 12 2008, 09:04)  процессор AT91SAMS256, в данный момент работает на частоте 48МГц AT91SAM7S64, 19.1МГц, из ОЗУ ваша функция исполяется ~10мс. исправлено: ой, обманул. У меня MCK делился на 2 и осциллограф был не прогрет. Итого: ~3мс на 46.7МГц, ~7мс на 19.1МГц
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|