![]() |
|
|
![]()
|
|
| Murzilka |
|
|||
|
Unregistered |
Прочитал на одном уважаемом сайте, что под вин32 смысла писать на асме особого нету, что при работе с графикой вся нагрузка ложится на железо.... а тогда какого черта простенький кубик в окошке(OpenGL) вращается раза в два быстрее, чем в таком же приложении, но написанном на С++
|
|||
|
||||
| p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 2 Всего: 112 |
При работе с графикой надо учитывать критические места, нельзя сказать, что в любом случае вся работа падет на железо. Нужно время от времени при разработке проги смотреть, какая часть программы является "тормозной" - это может быть и рендеринг OpenGL и сам твой код. Найдя тормозное место, его нужно оптимизировать. А ищется это легко и просто с помощью временных замеров каждой части.
Т.к. у тебя всего лишь кубик то видяха справляется с ним мгновенно, и тут скорость зависит как от видяхи так и от проца+кода... -------------------- С уважением, г-н Посол. |
|||
|
||||
| Baa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2639 Регистрация: 12.4.2002 Где: Москва Репутация: нет Всего: 12 |
Про нет смысла они имели в виду следующее:
1. Сейчас языки высокого уровня довольно неплохо оптимизируют свой код (своими глазами видел), так что достаточно оптимизации команд именно этого языка. 2. Также программировать на ассемблере не так просто, как на том же С++, потому проекты пишутся именно на языках высокого уровня (заказчик ждать не будет, а также он не будет слушать о том, что ассемблер - это круто) 3. Код на ассемблере обладает низкой удобочитаемостью, что усложняет разработку приложений в команде (это скорее как подпункт к пункту 2) -------------------- "Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande |
|||
|
||||
| Murzilka |
|
|||
|
Unregistered |
Изучаю АСМ дня четыре, до этого был кое-какой опыт на С. И что то не вижу я возросшей сложности в написании по сравнению С. Особенно если использовать invoke. Длинна листинга конечно побольше, но сложность ИМХО одинаковая. Как бы высокоуровневые языки не оптимизировали свой код, простое OpenGL приложение написанное в МАSM в 8 раз меньше по размеру исполняемого файла и в два раза быстрее
|
|||
|
||||
| Baa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2639 Регистрация: 12.4.2002 Где: Москва Репутация: нет Всего: 12 |
Во-первых, меньше - это еще не значит быстрее.
Во-вторых, если в проекте на Си++ 1000000 строк кода, то сколько будет на асме? И как другие это будут читать? Поверь мне, в маленьких программах усложнение незаметно, но вот в реальных проектах... -------------------- "Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande |
|||
|
||||
| RAN |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 709 Регистрация: 14.3.2003 Где: Щёлково Моск.обл. Репутация: нет Всего: 6 |
Да ладно, не может быть. Это ты загнул. Baa, по-моему этот довесок всё тот же CRT в С++ даёт, а человек решил, что это его прога. |
|||
|
||||
| Murzilka |
|
|||
|
Unregistered |
RAN, ну не веришь, сам смотри:
http://nehe.gamedev.net/data/lessons/vc/lesson05.zip (с++) http://nehe.gamedev.net/data/lessons/masm/lesson05.zip (masm) Baa, мульён строк |
|||
|
||||
| oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: 7 Всего: 34 |
мое мнение таково
при использовании разных библиотек типа opengl , directdraw программа делает только промежуточные вычисления а все остальное тоесть вывод на экран кручение вращение заливка тени и так далее делает библиотека в данном случае выигрыш в скорости может быть и не значительным (хотя в томже квейке много на асме написано) но если взять к примеру "чистое програмирование" без дополнительных библиотек (как в старые добрые времена мсдоса) и работать напрямую с видео памятью то я думаю с асмом тут не поспориш ни в скорости ни в размере программ вот оцените что можно сделать в 256 байт кода http://www.256b.com/ http://www.256b.com/processDownload.php?demoId=225 отпад полный! может нам тоже сделать конкурс? а админы? Это сообщение отредактировал(а) oleg1973 - 1.9.2003, 00:50 -------------------- SST 465555 icq 200-512-712 |
|||
|
||||
| RAN |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 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'а. |
|||
|
||||
| Murzilka |
|
|||
|
Unregistered |
RAN, у меня нету VC6. Я использую Bloodshed Dev-C++, там файл получается 23Кб
|
|||
|
||||
| RAN |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 709 Регистрация: 14.3.2003 Где: Щёлково Моск.обл. Репутация: нет Всего: 6 |
Ну, ты выложил VC-проект, я тебе и написал для VC. Короче если оставить только суть, то программа на C будет сравнима по размерам с asm. А насчёт скорости, то это может быть из-за вызова функций. Я просто не изучал твои примеры, времени сейчас не много. Может потом посмотрю.
P.S. Повторюсь в сотый раз - я за разумное совмещение C и asm. |
|||
|
||||
| oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: 7 Всего: 34 |
используй LCC-win32 у него маленькие файлы получаются -------------------- SST 465555 icq 200-512-712 |
|||
|
||||
| Murzilka |
|
|||
|
Unregistered |
RAN, я тоже за разумное совмещение C и asm.
oleg1973, спасиб за совет. |
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: нет Всего: 232 |
Murzilka, по-моему можно очень неплохо совмещать C++ с его готовыми решениями по хранению структурированных данных (STL), и ASM-вставки в отдельных, наиболее критичных по времени выполнения функциях (читай: математических вычислениях и интенсивной работе с блоками памяти).
-------------------- ![]() |
|||
|
||||
| NightGoblin |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1021 Регистрация: 24.11.2002 Где: 127.0.0.1 Репутация: 1 Всего: 11 |
Я тоже так думаю
-------------------- 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 |
|||
|
||||
![]()
|
| Правила форума "Asm: Общие вопросы" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Asm: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |