Search the Community
Showing results for tags 'ARM920T vs ARM920T'.
-
Здравствуйте! Попал мне в руки другой пром. контроллер, похожий по аппаратным возможностям на W406-LX. Вот его процессор: А вот процессор MOXA W406: Как видно, процессоры очень похожи, как минимум у них одинаковое ядро. Тактовые частоты тоже одинаковые. Более того, у другого контроллера нет арифметического сопроцессора и медленнее память. Берем простую программу (можно сильно не изучать - простейшая числодробилка): #include <stdio.h> #include <time.h> #include <malloc.h> #include <string.h> int func(double* k) { *k -= 11234.32; return *k; } int main() { int i, j, n, m, z=0; long long l1, l2; double dt; struct timespec t1, t2; clock_gettime(CLOCK_MONOTONIC, &t1); for(i=0; i<1000; i++) for(j=0; j<1000; j++) { l1 = i*j; l2 = l1%(i+1); dt = l2+j; n = dt+i*(l2-123); m = n/12; l1 = func(&dt); z += l1-m; } clock_gettime(CLOCK_MONOTONIC, &t2); l1 = ((long long)t1.tv_sec)*1000+t1.tv_nsec/1000000; l2 = ((long long)t2.tv_sec)*1000+t2.tv_nsec/1000000; dt = l2-l1; printf("dt=%.3f sec, z=%d\n", dt/1000, z); return 0; } компилируем и запускаем. на W406-LX время выполнения ~30 секунд. На другом контроллере ~5,4 секунд. Различные ключи оптимизации у компилятора пробовал, разница все равно огромная. Версия gcc для W406 - 4.4.2, для другого контроллера - 4.3.2 Тесты я начал проводить после того, как заметил большую разницу в скорости работы прикладной программы. Вопрос: почему такая огромная разница в производительности?