Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Гуру АСМа разъясните пжалста :).... проги на асме все же быстрее, чем.... 
:(
    Опции темы
Murzilka
Дата 30.8.2003, 05:53 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Прочитал на одном уважаемом сайте, что под вин32 смысла писать на асме особого нету, что при работе с графикой вся нагрузка ложится на железо.... а тогда какого черта простенький кубик в окошке(OpenGL) вращается раза в два быстрее, чем в таком же приложении, но написанном на С++confused.gif Комп у меня слабенький(Целерон 400 + XP стоит) и все ньюансы относительно скорости выполнения программ он очень хорошо показывает smile.gif.
  Вверх
p0s0l
Дата 30.8.2003, 11:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

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



При работе с графикой надо учитывать критические места, нельзя сказать, что в любом случае вся работа падет на железо. Нужно время от времени при разработке проги смотреть, какая часть программы является "тормозной" - это может быть и рендеринг OpenGL и сам твой код. Найдя тормозное место, его нужно оптимизировать. А ищется это легко и просто с помощью временных замеров каждой части.
Т.к. у тебя всего лишь кубик то видяха справляется с ним мгновенно, и тут скорость зависит как от видяхи так и от проца+кода...



--------------------
С уважением, г-н Посол.
PM   Вверх
Baa
Дата 31.8.2003, 00:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2639
Регистрация: 12.4.2002
Где: Москва

Репутация: нет
Всего: 12



Про нет смысла они имели в виду следующее:
1. Сейчас языки высокого уровня довольно неплохо оптимизируют свой код (своими глазами видел), так что достаточно оптимизации команд именно этого языка.
2. Также программировать на ассемблере не так просто, как на том же С++, потому проекты пишутся именно на языках высокого уровня (заказчик ждать не будет, а также он не будет слушать о том, что ассемблер - это круто)
3. Код на ассемблере обладает низкой удобочитаемостью, что усложняет разработку приложений в команде (это скорее как подпункт к пункту 2)


--------------------
"Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande
PM ICQ   Вверх
Murzilka
Дата 31.8.2003, 01:08 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Изучаю АСМ дня четыре, до этого был кое-какой опыт на С. И что то не вижу я возросшей сложности в написании по сравнению С. Особенно если использовать invoke. Длинна листинга конечно побольше, но сложность ИМХО одинаковая. Как бы высокоуровневые языки не оптимизировали свой код, простое OpenGL приложение написанное в МАSM в 8 раз меньше по размеру исполняемого файла и в два раза быстрее smile.gif.
  Вверх
Baa
Дата 31.8.2003, 12:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2639
Регистрация: 12.4.2002
Где: Москва

Репутация: нет
Всего: 12



Во-первых, меньше - это еще не значит быстрее.
Во-вторых, если в проекте на Си++ 1000000 строк кода, то сколько будет на асме? И как другие это будут читать? Поверь мне, в маленьких программах усложнение незаметно, но вот в реальных проектах...


--------------------
"Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande
PM ICQ   Вверх
RAN
Дата 31.8.2003, 21:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Экс. модератор
Сообщений: 709
Регистрация: 14.3.2003
Где: Щёлково Моск.обл.

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



Цитата
простое OpenGL приложение написанное в МАSM в 8 раз меньше по размеру исполняемого файла

Да ладно, не может быть. Это ты загнул. Baa, по-моему этот довесок всё тот же CRT в С++ даёт, а человек решил, что это его прога.
PM MAIL ICQ   Вверх
Murzilka
Дата 1.9.2003, 00:26 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











RAN, ну не веришь, сам смотри:
http://nehe.gamedev.net/data/lessons/vc/lesson05.zip (с++)
http://nehe.gamedev.net/data/lessons/masm/lesson05.zip (masm)

Baa, мульён строк smile.gif? Нифига себе... Я никогда такие проекты писать не буду, так что даже не знаю smile.gif
  Вверх
oleg1973
Дата 1.9.2003, 00:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


Профиль
Группа: Экс. модератор
Сообщений: 3283
Регистрация: 16.7.2003
Где: Italy

Репутация: 7
Всего: 34



мое мнение таково
при использовании разных библиотек типа opengl , directdraw программа делает только промежуточные вычисления а все остальное тоесть вывод на экран кручение вращение заливка тени и так далее делает библиотека
в данном случае выигрыш в скорости может быть и не значительным (хотя в томже квейке много на асме написано)
но если взять к примеру "чистое програмирование" без дополнительных библиотек (как в старые добрые времена мсдоса) и работать напрямую с видео памятью то я думаю с асмом тут не поспориш ни в скорости ни в размере программ
вот оцените что можно сделать в 256 байт кода
http://www.256b.com/
http://www.256b.com/processDownload.php?demoId=225
отпад полный!
может нам тоже сделать конкурс?smile.gif
а админы?

Это сообщение отредактировал(а) oleg1973 - 1.9.2003, 00:50


--------------------
SST 465555
icq 200-512-712
PM MAIL WWW ICQ   Вверх
RAN
Дата 1.9.2003, 09:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Экс. модератор
Сообщений: 709
Регистрация: 14.3.2003
Где: Щёлково Моск.обл.

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



Murzilka, ну, я так и думал. Открой свой проект в VC6. Там Alt+F7 (Установки). Открой закладку C/C++. Выбери category - Code generation. И в toolbox'е выбери DLL вместо статической. Посмотри, твой релиз уже займёт 16 кб. А если отключить поддержку C++ и т.п. то код можно ещё урезать.
Эта тема только, только поднималась в C++, там Baa дал ссылку на вот эту статью. Почитай и ты поймёшь, что говорить, что код на C++ занимает в 8 раз больше места не правильно, привильнее сказать, что при конфигурации Release по-умолчанию код на С++ займёт примерно на 30 кб больше, чем на asm из-за компановки Run-Time'а.

PM MAIL ICQ   Вверх
Murzilka
Дата 2.9.2003, 00:48 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











RAN, у меня нету VC6. Я использую Bloodshed Dev-C++, там файл получается 23Кб smile.gif. Но даже если если не 32, а 16.... ну пусть даже 8Кб, все равно ведь меньше ассемблерная прога ;). Кстати, почему она быстрее так и не понятно. Математических вычислений очень мало, а работает быстрее.
  Вверх
RAN
Дата 2.9.2003, 01:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Экс. модератор
Сообщений: 709
Регистрация: 14.3.2003
Где: Щёлково Моск.обл.

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



Ну, ты выложил VC-проект, я тебе и написал для VC. Короче если оставить только суть, то программа на C будет сравнима по размерам с asm. А насчёт скорости, то это может быть из-за вызова функций. Я просто не изучал твои примеры, времени сейчас не много. Может потом посмотрю.

P.S. Повторюсь в сотый раз - я за разумное совмещение C и asm.
PM MAIL ICQ   Вверх
oleg1973
Дата 2.9.2003, 13:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


Профиль
Группа: Экс. модератор
Сообщений: 3283
Регистрация: 16.7.2003
Где: Italy

Репутация: 7
Всего: 34



Цитата
Я использую Bloodshed Dev-C++

используй LCC-win32 у него маленькие файлы получаются


--------------------
SST 465555
icq 200-512-712
PM MAIL WWW ICQ   Вверх
Murzilka
Дата 3.9.2003, 02:58 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











RAN, я тоже за разумное совмещение C и asm.


oleg1973, спасиб за совет.
  Вверх
mr.DUDA
Дата 3.9.2003, 13:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: нет
Всего: 232



Murzilka, по-моему можно очень неплохо совмещать C++ с его готовыми решениями по хранению структурированных данных (STL), и ASM-вставки в отдельных, наиболее критичных по времени выполнения функциях (читай: математических вычислениях и интенсивной работе с блоками памяти).


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


Эксперт
***


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

Репутация: 1
Всего: 11



Я тоже так думаю smile.gif Например, преобразование данных, сортировки и прочее - лучше делать на асме, тем более, что это не так сложно будет перенести на другую ОС / платформу. А все остальное можно писать на C/C++, таким образом, критические участки будут оптимизированы по максимуму (ну как ни крути, ручками все равно можно оптимизировать лучше, чем это сделает машина... не всегда, конечно, но в большинстве случаев), а все остальное геморроя не стоит smile.gif


--------------------
Kernel panic: /dev/null overflow!
GCS/IT/MU/O d-@ s: a- C++$>++++$ ULSB(+++) P+++ L+++>++++ !E W++(-) N o? K w-- O? M>+ V? PS+ PE Y+ PGP+>+++ t- 5 X+ R- !tv b+ DI+ D+ G e++ h--- r++ y?
B4F1 54B6 8738 26CD 5125 0581 B923 9273 FE59 1981
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm: Общие вопросы"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

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

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm: Общие вопросы | Следующая тема »


 




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


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

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