IMHO.WS

IMHO.WS (https://www.imho.ws/index.php)
-   Программирование (https://www.imho.ws/forumdisplay.php?f=40)
-   -   Используете ли Вы Ассемблерную оптимизацию своих программ? (https://www.imho.ws/showthread.php?t=106054)

v_mirgorodsky 17.07.2006 11:33

Используете ли Вы Ассемблерную оптимизацию своих программ?
 
По мере роста производительности компьютеров все меньше и меньше программистов используют инструменты тонкой настойки своих программ и Ассемблерное кодирование особо критичных участков кода. А как с этим обстоит дело у Вас?

crawler 17.07.2006 14:12

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

Trotil 17.07.2006 23:16

Собственно, я уже говорил где-то: главное - знать и использовать быстрые алгоритмы, а вот например, ассемблерной оптимизацией пузырькой сортировки ничего путного добиться нельзя.
Вообще, есть замечательная книга Криса Касперски "Техника оптимизации программ" - там описаны тонкости оптимизации (путем изменения "горячих" точек - мест, наиболее тормозящих вычислительный процесс)

v_mirgorodsky 18.07.2006 10:27

Цитата:

crawler:
Асм оптимизация оправдывавет себя лишь в приложениях риал-тайм на слабых процах. Поэтому на ПК сегодня практически не делают оптимизацию.
Спорное утверждение. Сейчас я работаю над обработкой видеоинформации. По условиям ТЗ в память компьютера поступает порядка 400MB фреймов видеоинформации. Каждый из них необходимо сжать используя модифицированный JPEG-подобный алгоритм и записать на диск. Для задач такого плана Ассемблерная оптимизация просто незаменима, поскольку все автоматичекие трюки самых мощных компиляторов оказываются бессильны.

Цитата:

Trotil:
Вообще, есть замечательная книга Криса Касперски "Техника оптимизации программ" - там описаны тонкости оптимизации (путем изменения "горячих" точек - мест, наиболее тормозящих вычислительный процесс)
Книга и пара статей Криса Касперски оказались единственными полезными русскими ресурсами по вопросу оптимизации программ :( Все остальное пришлось изучать по Интеловским мануалам, новостным группам и исходникам GNU GPL софта. Причем во многих статьях идут ссылки на Интеловские Application Notes, которые уже недоступны с их сайта.

/7y3uK 18.07.2006 17:48

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

lukey 19.07.2006 10:14

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

PSyton 19.07.2006 11:49

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

crawler 19.07.2006 13:04

v_mirgorodsky
Хорошо, если этот самый алгоритм менять не надо- отдебагировали один раз и работает. А если в него надо вносить изменения (а время от времени просто переписывать заного), то ни одна фирма не может позволить себе таких временных затрат.

gandalf_g 19.07.2006 14:27

есть смысл юзать как подказали при обработке видео, и др. "крупных" потоков, используя оптимизацию с использованием индивидуальных комманд определенного процессора (MMX, SSE, SSE2 и т.д.), т.е. имменно в тех случаях когда компилятор заведомо даст не самый оптимальный код, благо такие ситуации встречаются не часто

_Lynx_ 21.07.2006 12:13

Цитата:

Сообщение от /7y3uK
лично я - за ненужность. Ибо уже давно пишу на Java, где такого понятия просто нет. Т.к. такого рода оптимизации могут понадобиться только для разработчиков виртуальных (или хардварных) машин джава, которые будут работать с моим байткодом...

Ещё бы, там только для разработки пара гигов памяти нужна. А уж про скорость выполнения и не говорю.
Но зачастую это очень нужно для оптимизации вычислений.

/7y3uK 21.07.2006 13:43

Цитата:

Сообщение от _Lynx_
... Но зачастую это очень нужно для оптимизации вычислений.

Ни кто ж не спорит :beer: Оптимизация, ее вообще нужно делать только там где она необходима. К примеру такого рода оптимизации могут понадобиться, если ты решил работать на оборонку или на какое-нибудь унитарное предприятие. Там обычно пишут фиксированное и очень проработанное ТЗ с линейным процессом разработки. Да и системы у них должны быть шустрые и надежные, так что там скорее всего без оптимизаций вовсе не обойтись. А вот коммерческий продукт с таким тюнингом поддерживать довольно накладно...

Цитата:

Сообщение от _Lynx_
Ещё бы, там только для разработки пара гигов памяти нужна. А уж про скорость выполнения и не говорю...

Давайте отделять мух от котлет, процесс разработки ни как не связан с процессом использования :biggrin: А память жрет любая платформа с автоматической сборкой мусора. Да и скорость в моем случае понятие относительное. Все зависит от того как на С напишут джавамашину и будут ли ее оптимизировать на Асме :yees:

_Lynx_ 21.07.2006 14:58

Так по-любому будет медленнее, чем на том же С.

yan_kos 21.07.2006 17:06

Оптимизацыя нужна всегда и везде но она должна быть разной по "глубине", иногда один код лутше и с компилить как минимум под 2 Пень (ммх,еммх) и хватит, а иногда и розмищения большой части ф-й в место визова (inline function) не спасает дело...

saintevil 07.08.2006 16:57

Использую асм только для SSE/MMX оптимизации, просто переписыванием части кода на асме не занимаюсь.

Willow 07.08.2006 23:36

В принципе придерживаюсь мнения , что для бизнес приложений главное правильно выбрать алгоритм и ассемблер скорее всего не понадобиться.
Но на собственном опыте говорю, иногда лучше чето критическое соптимизировать на асме, чем за неделю до сдачи, переделывать неоптимальный алгоритм. Хотя это из области кривых заплаток :eek: .


Часовой пояс GMT +4, время: 05:56.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.