![]() |
|
Модераторы: bsa Страницы: (11) Все « Первая ... 5 6 [7] 8 9 ... Последняя »
( Перейти к первому непрочитанному сообщению ) |
![]()
|
|
| Kallikanzarid |
|
||||||||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 240 Регистрация: 9.11.2008 Репутация: 2 Всего: 3 |
J0ker, у него один проц, скажет, что ничего не заметил
GoldFinch,
Пошли отговорки? ;-) Прога вести 275 кб, потому что использует статический билд libc++. msvcrt.dll есть в каждом дистрибутиве Windows, это реализация рантайма С. Если подумать, использование в качестве бэкэнда для libc++ родной для каждой платформы реализации C runtime - логичный ход со стороны GNU.
ХЗ, но билд ее требует.
Нет уж, теперь ты не отвертишься
В интересах науки заменил clock() на GetTickCount(). Результат практически не изменился. Архив прилагается.
Почему? Тут меняется только число итераций. С тем же успехом можно взять компактный алгоритм, прогнать его несколько тысяч раз и взять среднее арифметическое время. На протяжении почти всех итераций код и данные будут в кэше, и это может сказаться, но для сравнения эффективности кода той или иной реализации это не так важно. Это сообщение отредактировал(а) Kallikanzarid - 9.12.2008, 19:58 Присоединённый файл ( Кол-во скачиваний: 3 )
showdown.rar 91,38 Kb |
||||||||||
|
|||||||||||
| GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 6 Всего: 26 |
Kallikanzarid, у меня код 2кб, в 137 раз меньше, если слить секции в 1 - будет весить 1кб, в 275 раз меньше
если я говорил что у MSVC кодогенератор гуан* то зачем выкладывать код сгенереный gcc? и GetTickCount() тоже плохая идея, я его юзал только чтобы получать результат в секундах, мерить производительность лучше rdtsc мерять лучше так - сделать небольшую длительность 1 измерения (в идеале меньше 1 кванта времени), выполнить Sleep чтобы измерение началось в начале кванта, замерить, выполнить Sleep, замерить и т.д., а все замеры просуммировать |
|||
|
||||
| Kallikanzarid |
|
||||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 240 Регистрация: 9.11.2008 Репутация: 2 Всего: 3 |
А зачем? ИМХО, картина и так ясна.
Ты хаил портируемый код и С++ вообще. Можешь поиграться с настройками MSVC в качестве домашнего задания. Бенчмарки показывают, что его код быстрее, чем у GCC.
Допустим. И что? Предлагаю начать новый раунд эпического противостояния. На этот раз проверим работу с памятью, в частности, с массивами. Выбирай задачу |
||||||
|
|||||||
| GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 6 Всего: 26 |
||||
|
||||
| J0ker |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 986 Регистрация: 17.9.2008 Репутация: 9 Всего: 14 |
мыж уже вроде решили что гуан* не компилятор, а ваше понимание? |
|||
|
||||
| Kallikanzarid |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 240 Регистрация: 9.11.2008 Репутация: 2 Всего: 3 |
Цитата:
Как наиболее характерный образчик. |
|||
|
||||
| GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 6 Всего: 26 |
только в следующем же посте я уточнил что речь идет о MSVC и начал приводить примеры его кодогенерации Хочешь эпического противостояния? по размеру оптимизировать будем? |
|||
|
||||
| J0ker |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 986 Регистрация: 17.9.2008 Репутация: 9 Всего: 14 |
вы игнорируете мой вопрос?
Kallikanzarid, соглашайтесь - придумайте задачу, использующую как можно больше функций CRT - printf например - пусть затрахается и заодно посоревнуется в оптимизации на реальных программах |
||||
|
|||||
| Kallikanzarid |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 240 Регистрация: 9.11.2008 Репутация: 2 Всего: 3 |
Оптимизируем по времени выполнения.
|
|||
|
||||
| GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 6 Всего: 26 |
Kallikanzarid, а что не по размеру? Там в компиляторе даже опция есть, "оптимизировать по размеру", в MSVC по крайней мере
|
|||
|
||||
| J0ker |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 986 Регистрация: 17.9.2008 Репутация: 9 Всего: 14 |
GoldFinch, передергиваете, да?
|
|||
|
||||
| Kallikanzarid |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 240 Регистрация: 9.11.2008 Репутация: 2 Всего: 3 |
GoldFinch, по той простой причине, что все ЯВУ постоянно держат в памяти собственный рантайм, так что тут им конкурировать с лишенным оного ассемблером бессмысленно. Тем более, что размер экзешника в наши дни не особенно важен, тем более, если счет идет на килобайты.
|
|||
|
||||
| J0ker |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 986 Регистрация: 17.9.2008 Репутация: 9 Всего: 14 |
Kallikanzarid, можете соглашаться - существуют специальные ужатые версии CRT - http://www.microsoft.com/msj/archive/S569.aspx
|
|||
|
||||
| GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 6 Всего: 26 |
J0ker, ну у вас-то они уже давно закончились
|
|||
|
||||
| Kallikanzarid |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 240 Регистрация: 9.11.2008 Репутация: 2 Всего: 3 |
J0ker, да ну, зачем мне такие извращения? У меня 1 гиг памяти, полгига видеопамяти, 2 мега кэш второго уровня, 150 гигов дискового пространства и безлимитный интернет на 1 мегабит - а я буду бороться с лишними килобайтами экзешника?
|
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |