aaarrr 68 14 июня, 2011 Опубликовано 14 июня, 2011 · Жалоба спасибо,поставил. Все равно слишком мало. Поставили "-O3 -Otime"? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
brag 0 14 июня, 2011 Опубликовано 14 июня, 2011 · Жалоба Честно говоря, странные результаты. Даже древний ИАР 5 версии выдаёт 50 мипсов... вообще-то все дело в функциях типа strcpy :) у меня простые inline на C написаны, без особых хитростей, воткнул библиотечную strcpy, strcmp че-то не хочет, я ему __builtin_strcmp , а он мне undefined reference to `strcmp' Microseconds for one run through Dhrystone: 9 Dhrystones per Second: 111111 VAX MIPS rating = 63.239 кароче тут мы тестим у кого лучше strcpy/strcmp реализованы :)) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AHTOXA 14 14 июня, 2011 Опубликовано 14 июня, 2011 · Жалоба AHTOXA, можете выложить откомпиленные бинарки dhry21a.о,dhry21b.о или как там у вас? уж больно интересно стало... Вот держите, весь проект (с *.o): dhrystone.7z Хех, секунды, сотые - вот тут мои микросекундные таймеры рулят в полную :laughing: Это потому у вас такое ровное число: Microseconds for one run through Dhrystone: 6.0 ? Или случайно совпало? :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sonycman 0 14 июня, 2011 Опубликовано 14 июня, 2011 · Жалоба Это потому у вас такое ровное число: ? Или случайно совпало? :) Хм, конечно случайно, там ведь время одного прохода вычисляется в плавучке. Просто у меня точность измерения общего отрезка времени выполнения функции идёт до микросекунды :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AHTOXA 14 14 июня, 2011 Опубликовано 14 июня, 2011 · Жалоба Тогда подправьте в тесте формат выдачи результата, чтоб было типа Microseconds for one run through Dhrystone: 6.002 , так будет видно микросекундное разрешение:) Вот держите, весь проект (с *.o): dhrystone.7z Упс, накладочка вышла. Так не заработает. Чтоб заработало, надо в makefile исправить USE_LTO = YES на USE_LTO = NO . Это я пытался улучшить результат, но не заработало. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sonycman 0 15 июня, 2011 Опубликовано 15 июня, 2011 · Жалоба Тогда подправьте в тесте формат выдачи результата, чтоб было типа Microseconds for one run through Dhrystone: 6.002 , так будет видно микросекундное разрешение:) Это уже будет нано- и пико- секундное разрешение :) А если серьёзно, то ничего так не будет видно, после вычисления на основе double переменных дробные значения получатся хоть из целых секунд. Чтобы увидеть разрешение таймера нужно распечатать полученное общее время теста, или разницу между Begin_time и End_time. В моём случае Begin_Time всегда равно нулю, поэтому достаточно только End_Time, в микросекундах: EndTime: 3035526 Microseconds for one run through Dhrystone: 6.0710520000 Dhrystones per Second: 164716.1 VAX MIPS rating = 93.748 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AHTOXA 14 15 июня, 2011 Опубликовано 15 июня, 2011 · Жалоба А если серьёзно, то ничего так не будет видно, после вычисления на основе double переменных дробные значения получатся хоть из целых секунд. Я не о том:) Просто после того, как у меня получилось усечение секунд до целых (с изрядным улучшением результата теста), я с подозрением отнёсся к Microseconds for one run through Dhrystone: 6.0. Вот так - совсем другое дело: Microseconds for one run through Dhrystone: 6.0710520000 :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
brag 0 16 июня, 2011 Опубликовано 16 июня, 2011 · Жалоба проверил еще на IAR V6.20.3.22642 iccarm --thumb --cpu Cortex-M3 --aapcs std --aeabi -Ohs -r -e Microseconds for one run through Dhrystone: 21 Dhrystones per Second: 47619 VAX MIPS rating = 27.102 все функции мои, библиотечные не использовал. для сравнения тот же код на gcc arm-none-eabi-gcc -Werror -Wall -Wextra -pipe -mcpu=cortex-m3 -mthumb -O2 -fomit-frame-pointer -ffreestanding -fno-common -fwide-exec-charset=UTF-16LE -fshort-wchar -g Microseconds for one run through Dhrystone: 19 Dhrystones per Second: 52631 VAX MIPS rating = 29.955 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sonycman 0 16 июня, 2011 Опубликовано 16 июня, 2011 · Жалоба все функции мои, библиотечные не использовал. Все - это которые? Strcpy и Strcmp? Ну а смысл? Ведь судя по результату - реализация очень слабая... :rolleyes: ЗЫ: а printf тоже ваша собственная? :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
brag 0 16 июня, 2011 Опубликовано 16 июня, 2011 · Жалоба Все - это которые? Strcpy и Strcmp? Ну а смысл? Ведь судя по результату - реализация очень слабая... смысл - gcc че-то в free-standing глючит с библиотечными. а реализация нормальная, просто компиллер, когда копирует строковые константы иногда может хитрый код генерить. в данном случаи strcpy (Ptr_Glob->variant.var_1.Str_Comp,"DHRYSTONE PROGRAM, SOME STRING"); он взрулил. в других случаях,где идет у меня работа с usb-дескрипторами он вообще хочет вызывать обычную strcpy, реализация которой ничем не лучше(и не хуже) моей. ЗЫ: а printf тоже ваша собственная? да, простой. не хотел запариватся обучать gcc-шный, как правильно работать под моей системой, с моими драйверами, куда собственно выводить итп, а если он еще кучи использует, так вообще пахать не будет, у меня нету куч,статика чисто. проще свой написать, всего каких-то там 120 строчек кода и инлайны memxxx и strxxx все вместе 70 строчек кода попробую еще какой-нибудь ogg или jpeg запихнуть, посмотрим как оно Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sonycman 0 16 июня, 2011 Опубликовано 16 июня, 2011 · Жалоба попробую еще какой-нибудь ogg или jpeg запихнуть, посмотрим как оно Только как бы это сделать попроще? Без файловой системы, для чистоты эксперимента? Там ведь объёмы в сотни килобайт\мегабайты :( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 68 16 июня, 2011 Опубликовано 16 июня, 2011 · Жалоба Только как бы это сделать попроще? Без файловой системы, для чистоты эксперимента? Там ведь объёмы в сотни килобайт\мегабайты :( JPEG в качестве теста пробовал. На МК без внешней памяти исходную картинку кладем во флеш, результат в RAM. Сотен килобайт не нужно, достаточно пары десятков. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AHTOXA 14 16 июня, 2011 Опубликовано 16 июня, 2011 · Жалоба VAX MIPS rating = 29.955 Может у вас с частотой чего не того? Что-то совсем грустно получается:) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sonycman 0 16 июня, 2011 Опубликовано 16 июня, 2011 · Жалоба JPEG в качестве теста пробовал. На МК без внешней памяти исходную картинку кладем во флеш, результат в RAM. Сотен килобайт не нужно, достаточно пары десятков. Ну а исходники можно попросить выложить? Если они не коммерческие, конечно? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 68 16 июня, 2011 Опубликовано 16 июня, 2011 · Жалоба Ну а исходники можно попросить выложить? Если они не коммерческие, конечно? Можно, они гнутые и не мои. Уже когда-то здесь проскакивали, я только по минимуму что-то причесывал на предмет производительности. jpeg.rar Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться