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

Поиск:

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


любитель
****


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

Репутация: 79
Всего: 250



Цитата(GoldFinch @  10.12.2008,  16:37 Найти цитируемый пост)
инструмент и ничто не мешает взять автоматически сгенерированный им код и вручную доработать его до идеала. 

такой способ (если конечно ручная доводка необходимa) также присутствует в данной цитате :

Цитата(mes @  10.12.2008,  15:44 Найти цитируемый пост)
максимальный эффект можно добиться если правильно подобрать инструмент/ы

 smile 


Это сообщение отредактировал(а) mes - 10.12.2008, 17:12


--------------------
PM MAIL WWW   Вверх
GoldFinch
Дата 10.12.2008, 17:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


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

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



а всетаки программирование на асме ничуть не медленнее программирования на С++, даже быстрее с учетом времени создания нового проекта и компиляции. опять же на .ехешку в 1кб смотреть приятно
Код

include 'win32a.inc'
include 'hll.inc'
format PE GUI 4.0
section 'AllInOne' code readable writeable executable
IMPORTS KERNEL32.DLL, <ExitProcess,GetLastError,FormatMessageA>,\
        USER32.DLL,   <SetWindowPos,FindWindowA,MessageBoxA>
        psMsg dd ?
entry $
      FindWindowA("GcxPropertyPageSite.Window.1",0)
            test eax,eax
            jz .err
      SetWindowPos(eax,HWND_TOPMOST,0,0,0,0,SWP_SHOWWINDOW+SWP_NOSIZE)
            test eax,eax
            jz .err
      ExitProcess()
.err:
      GetLastError()
      FormatMessageA(FORMAT_MESSAGE_ALLOCATE_BUFFER+FORMAT_MESSAGE_FROM_SYSTEM+FORMAT_MESSAGE_IGNORE_INSERTS,\
                        0,eax,0,psMsg,0,0)
      MessageBoxA(0,[psMsg],0,0)
      ExitProcess()

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


Опытный
**


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

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



Цитата(mes @  10.12.2008,  15:44 Найти цитируемый пост)
Тесты показывают что c/cpp не отстает от асма по скорости.

тесты показывают, что как только задача сталкивается с реальностью многоядерного процессора, то только гений может оптимизировать код лучше компилятора

Добавлено через 1 минуту и 24 секунды
Цитата(GoldFinch @  10.12.2008,  16:37 Найти цитируемый пост)
ничто не мешает взять автоматически сгенерированный им код и вручную доработать его до идеала

мешает, мешает
см. выше


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



****


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

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



J0ker, здравый смысл подсказывает что кодогенератор твоего компилятора тоже люди писали, написать менее универсальный но более эффективный не проблема
PM MAIL ICQ   Вверх
mes
Дата 10.12.2008, 17:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


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

Репутация: 79
Всего: 250



Цитата(GoldFinch @  10.12.2008,  17:17 Найти цитируемый пост)
а всетаки программирование на асме ничуть не медленнее программирования на С++, даже быстрее с учетом времени создания нового проекта и компиляции. опять же на .ехешку в 1кб смотреть приятно

если программа для  решения мелкой задачи то трудно оценить.. А вот например составить браузер или тот же самый компилятор ? думаю мало кто из программистов отважится затеять такой проект на асме , хотя "герои" безусловно есть )


--------------------
PM MAIL WWW   Вверх
J0ker
Дата 10.12.2008, 17:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(GoldFinch @  10.12.2008,  17:17 Найти цитируемый пост)
а всетаки программирование на асме ничуть не медленнее программирования на С++, даже быстрее с учетом времени создания нового проекта и компиляции

издеваешься, да?  smile 



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


любитель
****


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

Репутация: 79
Всего: 250



Цитата(GoldFinch @  10.12.2008,  17:23 Найти цитируемый пост)
написать менее универсальный но более эффективный не проблема 

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

Это сообщение отредактировал(а) mes - 10.12.2008, 17:29


--------------------
PM MAIL WWW   Вверх
J0ker
Дата 10.12.2008, 17:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(GoldFinch @ 10.12.2008,  17:23)
J0ker, здравый смысл подсказывает что кодогенератор твоего компилятора тоже люди писали

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

Добавлено через 1 минуту и 18 секунд
Цитата(GoldFinch @  10.12.2008,  17:23 Найти цитируемый пост)
написать менее универсальный но более эффективный не проблема 

с первым согласен
со вторым нет - для более-менее сложного кода - см.выше

Добавлено через 9 минут и 18 секунд
я много раз сталкивался с подобными спорами
и если лет 10 назад еще можно было показать, что программа, написанная на ассемблере более производительна, то как только появились многоядерные процессоры, это стало практически невозможно - разборы полетов показали, что компилятор может раскидать инструкции так, что они хорошо параллелятся - при этом логика оказывается настолько сложна, что ни один человек не в состоянии такое написать, а якобы бессмысленные с т.з. человека операции (например замена одного оператора парой других, выполняющихся заведомо медленней) приводит к повышению производительности - что обусловлено опять-таки распараллеливанием



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


Бывалый
*


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

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



Цитата

я много раз сталкивался с подобными спорами
и если лет 10 назад еще можно было показать, что программа, написанная на ассемблере более производительна, то как только появились многоядерные процессоры, это стало практически невозможно - разборы полетов показали, что компилятор может раскидать инструкции так, что они хорошо параллелятся - при этом логика оказывается настолько сложна, что ни один человек не в состоянии такое написать, а якобы бессмысленные с т.з. человека операции (например замена одного оператора парой других, выполняющихся заведомо медленней) приводит к повышению производительности - что обусловлено опять-таки распараллеливанием

Ты имел ввиду конвеерные суперскалярные процессоры? А то применительно к мультиядерности ты написал хню smile
PM MAIL   Вверх
J0ker
Дата 10.12.2008, 19:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Kallikanzarid @  10.12.2008,  17:47 Найти цитируемый пост)
Ты имел ввиду конвеерные суперскалярные процессоры? А то применительно к мультиядерности ты написал хню

о мля, точно, переклинило  smile 


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



****


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

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



J0ker, береш справочник Агнера Фога, и пишешь код не хуже того что генерит компилятор. Компилятор хорош тем что избавляет от рутины за счет неидеальной кодогенерации и отсутствия средств управления кодогенерацией
Может там и будет офигенное распараллеливание, но вот идиотские неоптимальности типа 
push reg32 / fld dword [m32real] / fstp dword [esp]
вместо
push dword [m32real]
всеравно останутся
PM MAIL ICQ   Вверх
Kallikanzarid
Дата 10.12.2008, 20:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



GoldFinch, пользуясь случаем, еще раз предлагаю тебе второй раунд. Докажи, что асм-код для FP или целочисленных вычислительных методов и правда выполняется быстрее компилируемого. Все, что тебе нужно сделать - это выбрать адекватный алгоритм и написать ее реализацию, которая работала бы быстрее моей на С++.
PM MAIL   Вверх
GoldFinch
Дата 10.12.2008, 20:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


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

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



Kallikanzarid, выложи свой бинарник я его оптимизирую и "мой" код будет работать быстрее.
Если говорить о сравнении различных реализаций, то все упрется в то чье программерское мастерство лучше, так я и на С++ напишу код быстрее твоего ^^
PM MAIL ICQ   Вверх
mes
Дата 10.12.2008, 20:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


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

Репутация: 79
Всего: 250



Цитата(GoldFinch @  10.12.2008,  20:34 Найти цитируемый пост)
так я и на С++ напишу код быстрее твоего

заочно оценили ?  чудеса  smile 


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



****


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

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



mes, ага, с доверительной вероятностью 95%
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

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

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

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

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


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

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


 




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


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

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