Модераторы: bsa

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> msvc2008 bug??? 
:(
    Опции темы
Kallikanzarid
Дата 9.12.2008, 19:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 240
Регистрация: 9.11.2008

Репутация: 2
Всего: 3



J0ker, у него один проц, скажет, что ничего не заметил  smile 

GoldFinch,

Цитата

кстати, что это у тя прога весит 275кб и требует несистемную дллку msvcrt.dll

Пошли отговорки? ;-) Прога вести 275 кб, потому что использует статический билд libc++. msvcrt.dll есть в каждом дистрибутиве Windows, это реализация рантайма С. Если подумать, использование в качестве бэкэнда для libc++ родной для каждой платформы реализации C runtime - логичный ход со стороны GNU.

Цитата

а зачем у тя в архиве дллка mingwm10.dll, для весу?

ХЗ, но билд ее требует.

Цитата

ЗЫ: между прочим, мы начинали разговор именно о MSVC

Нет уж, теперь ты не отвертишься  smile Кстати, считается, что у MSVC генерируемый код лучше, чем у гнуса.

Цитата

какбэ clock() вызывает GetSystemTimeAsFileTime, а это очень плохой метод измерения

В интересах науки заменил clock() на GetTickCount(). Результат практически не изменился. Архив прилагается.

Цитата

да и увеличивать время измерения увеличивая время работы тестируемого алгоритма не самый лучший подход

Почему? Тут меняется только число итераций. С тем же успехом можно взять компактный алгоритм, прогнать его несколько тысяч раз и взять среднее арифметическое время. На протяжении почти всех итераций код и данные будут в кэше, и это может сказаться, но для сравнения эффективности кода той или иной реализации это не так важно.

Это сообщение отредактировал(а) Kallikanzarid - 9.12.2008, 19:58

Присоединённый файл ( Кол-во скачиваний: 3 )
Присоединённый файл  showdown.rar 91,38 Kb
PM MAIL   Вверх
GoldFinch
Дата 9.12.2008, 20:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Завсегдатай
Сообщений: 2141
Регистрация: 30.11.2008

Репутация: 6
Всего: 26



Kallikanzarid, у меня код 2кб, в 137 раз меньше, если слить секции в 1 - будет весить 1кб, в 275 раз меньше
если я говорил что у MSVC кодогенератор гуан* то зачем выкладывать код сгенереный gcc?
и GetTickCount() тоже плохая идея, я его юзал только чтобы получать результат в секундах, мерить производительность лучше rdtsc
мерять лучше так - сделать небольшую длительность 1 измерения (в идеале меньше 1 кванта времени), выполнить Sleep чтобы измерение началось в начале кванта, замерить, выполнить Sleep, замерить и т.д., а все замеры просуммировать
PM MAIL ICQ   Вверх
Kallikanzarid
Дата 9.12.2008, 20:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 240
Регистрация: 9.11.2008

Репутация: 2
Всего: 3



Цитата

мерить производительность лучше rdtsc
мерять лучше так - сделать небольшую длительность 1 измерения (в идеале меньше 1 кванта времени), выполнить Sleep чтобы измерение началось в начале кванта, замерить, выполнить Sleep, замерить и т.д., а все замеры просуммировать 

А зачем? ИМХО, картина и так ясна.

Цитата

если я говорил что у MSVC кодогенератор гуан* то зачем выкладывать код сгенереный gcc?

Ты хаил портируемый код и С++ вообще. Можешь поиграться с настройками MSVC в качестве домашнего задания. Бенчмарки показывают, что его код быстрее, чем у GCC.

Цитата

у меня код 2кб, в 137 раз меньше, если слить секции в 1 - будет весить 1кб, в 275 раз меньше

Допустим. И что?  smile 

Предлагаю начать новый раунд эпического противостояния. На этот раз проверим работу с памятью, в частности, с массивами. Выбирай задачу smile
PM MAIL   Вверх
GoldFinch
Дата 9.12.2008, 20:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Завсегдатай
Сообщений: 2141
Регистрация: 30.11.2008

Репутация: 6
Всего: 26



Цитата(Kallikanzarid @  9.12.2008,  20:19 Найти цитируемый пост)
Ты хаил портируемый код и С++ вообще. 

цитату
PM MAIL ICQ   Вверх
J0ker
Дата 9.12.2008, 20:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 986
Регистрация: 17.9.2008

Репутация: 9
Всего: 14



Цитата(GoldFinch @  9.12.2008,  20:12 Найти цитируемый пост)
если я говорил что у MSVC кодогенератор гуан*

мыж уже вроде решили что гуан* не компилятор, а ваше понимание?  smile 


--------------------
user posted image
PM MAIL   Вверх
Kallikanzarid
Дата 9.12.2008, 20:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 240
Регистрация: 9.11.2008

Репутация: 2
Всего: 3



Цитата:
Цитата

Kallikanzarid, из-за "кроссплатформенности", в С(++) нет способа средствами языка сгенерить некоторые x86-87 команды, например загрузку констант в FPU. 
Т.е. в некроссплатформенном паскале есть оператор(функция) Pi который генерит fldpi, а в кроссплатформенном С(++) оператора Pi() нет, и способа сгенерить fldpi (и другие константы) тоже нет.
Впрочем код C++ для FPU местами ужасен %) Ни один нормальный программист такого бы не писал. 

Как наиболее характерный образчик.
PM MAIL   Вверх
GoldFinch
Дата 9.12.2008, 20:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Завсегдатай
Сообщений: 2141
Регистрация: 30.11.2008

Репутация: 6
Всего: 26



Цитата(GoldFinch @  8.12.2008,  20:05 Найти цитируемый пост)
ок, будет говорить исключительно о компиляторе MSVC. так вот у него кодогенератор - гуан*

насчет кода для FPU - вот так вот в MSVC передаются 32-разрядные значения float
.text:10001344                 fld     [esp+18h+arg_4]
.text:10001348                 fstp    [esp+18h+var_14]
.text:1000134C                 fld     dword ptr [eax+4]
.text:1000134F                 fstp    [esp+18h+var_18]
.text:10001352                 call    FCanvasUtil::DrawLine(float,float,float,float,FColor,int)

только в следующем же посте я уточнил что речь идет о MSVC и начал приводить примеры его кодогенерации


Хочешь эпического противостояния? по размеру оптимизировать будем?
PM MAIL ICQ   Вверх
J0ker
Дата 9.12.2008, 20:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 986
Регистрация: 17.9.2008

Репутация: 9
Всего: 14



Цитата(GoldFinch @  9.12.2008,  20:31 Найти цитируемый пост)
только в следующем же посте я уточнил что речь идет о MSVC и начал приводить примеры его кодогенерации

вы игнорируете мой вопрос?  smile 

Цитата(GoldFinch @  9.12.2008,  20:31 Найти цитируемый пост)
Хочешь эпического противостояния? по размеру оптимизировать будем? 


Kallikanzarid, соглашайтесь - придумайте задачу, использующую как можно больше функций CRT - printf например - пусть затрахается и заодно посоревнуется в оптимизации на реальных программах  smile 


--------------------
user posted image
PM MAIL   Вверх
Kallikanzarid
Дата 9.12.2008, 20:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 240
Регистрация: 9.11.2008

Репутация: 2
Всего: 3



Оптимизируем по времени выполнения.
PM MAIL   Вверх
GoldFinch
Дата 9.12.2008, 20:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Завсегдатай
Сообщений: 2141
Регистрация: 30.11.2008

Репутация: 6
Всего: 26



Kallikanzarid, а что не по размеру? Там в компиляторе даже опция есть, "оптимизировать по размеру", в MSVC по крайней мере
PM MAIL ICQ   Вверх
J0ker
Дата 9.12.2008, 20:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 986
Регистрация: 17.9.2008

Репутация: 9
Всего: 14



GoldFinch, передергиваете, да?  smile аргУменты кончаются?  smile 



--------------------
user posted image
PM MAIL   Вверх
Kallikanzarid
Дата 9.12.2008, 20:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 240
Регистрация: 9.11.2008

Репутация: 2
Всего: 3



GoldFinch, по той простой причине, что все ЯВУ постоянно держат в памяти собственный рантайм, так что тут им конкурировать с лишенным оного ассемблером бессмысленно. Тем более, что размер экзешника в наши дни не особенно важен, тем более, если счет идет на килобайты.
PM MAIL   Вверх
J0ker
Дата 9.12.2008, 20:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 986
Регистрация: 17.9.2008

Репутация: 9
Всего: 14



Kallikanzarid, можете соглашаться - существуют специальные ужатые версии CRT - http://www.microsoft.com/msj/archive/S569.aspx


--------------------
user posted image
PM MAIL   Вверх
GoldFinch
Дата 9.12.2008, 20:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Завсегдатай
Сообщений: 2141
Регистрация: 30.11.2008

Репутация: 6
Всего: 26



J0ker, ну у вас-то они уже давно закончились
PM MAIL ICQ   Вверх
Kallikanzarid
Дата 9.12.2008, 20:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 240
Регистрация: 9.11.2008

Репутация: 2
Всего: 3



J0ker, да ну, зачем мне такие извращения? У меня 1 гиг памяти, полгига видеопамяти, 2 мега кэш второго уровня, 150 гигов дискового пространства и безлимитный интернет на 1 мегабит - а я буду бороться с лишними килобайтами экзешника?
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0573 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.