информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Сетевые кракеры и правда о деле ЛевинаГде водятся OGRы
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Google заблокировала 2 с лишним... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / beginners
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Господа, будьте снисходительны, не бросайтесь сразу штрафовать за, как вам кажется, глупые вопросы - beginners на то и beginners.
лучший способ оптимизировать программу - это улучшить... 10.06.04 09:18  Число просмотров: 1227
Автор: noonv <Vladimir> Статус: Member
<"чистая" ссылка>
лучший способ оптимизировать программу - это улучшить алгоритм работы;
посмотри какие функции вызывается часто - оптимизируй их(можно и на asm-е переписать)

ну а лучшим дизассемблером является IDA
<beginners>
Какие существуют способы "дезасемблировать" програму? 09.06.04 23:29  
Автор: Vasili Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Привет всезнающий ALL.

Я написал программу(MSVC), не очень большую.
У меня есть и код этой программы и EXE-файл.
Задача стоит "optimize for speed"..
Слышал, что если ее "дезасемблировать" а потом в том же MSVC собрать заново то она будет работать быстрее...

Правда ли ЭТО? И как ЭТО сделать?
А может существуют другие способы "optimize for speed" , кроме Release with /O2??

Зараннее благодарен за любую информацию..
Спасибо ВСЕМ, кто откликнулся.. 10.06.04 18:22  
Автор: Vasili Статус: Незарегистрированный пользователь
<"чистая" ссылка>
О, Василий, Вы мне разбудили во мне воспоминания о годах,... 10.06.04 10:38  
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman
Отредактировано 10.06.04 10:41  Количество правок: 1
<"чистая" ссылка>
О, Василий, Вы мне разбудили во мне воспоминания о годах, канувших в небытие. Тогда "под рукой" был интерпритатор Бэйсика, Фортран, "никакенный" С и Ассемблер.
Бейсик был по всеобщему умозаключению самый тормозной, поскольку являлся интерпретатором, и каждую мнемонически записанную операцию он перед выполнением переводил в удобоваримый код. Быстрее работали оттранслированные в машинный код программы Фортрана. Ассемблеровский код вылизанный вручную работал быстрее всего, поскольку трансляторы не всё могли перевести идеально.
Вот тогда то кое у кого и возникла мысль "Если фортрановскую программу (екзешник) дизассемблировать, а потом пересобрать при помощи уже самого ассемблера, то она будет работать быстрее". Глубочайшее заблуждение новичков.
Однажды я был свидетелем, как скорость работы вычислительной программы постепенно возрастала в десятки тысяч раз по мере модификации/улучшения или применения нового алгоритма. Таких примеров я могу привести не один.
Несколько десятков лет назад ядерные и химические реакции, физические процессы успешно обсчитывались на БЭСМ-6, которая была тормознее современного настольного ПК в десятки-сотни тысяч раз. А сейчас на современных ПК элементарные задачи сортировки или поиска поиска в базах почему-то ужасно "тормозят". На скорость выполнения задачи влияют ТОЛЬКО две вещи: быстродействие компьютера и оптимальность АЛГОРИТМА. Причем оптимальность кода с точки зрения процессора относится к оптимальности алгоритма и составляет от него ничтожно малую часть.
Можно бухнуть приличную сумму на замену процессора на вдвое-втрое более быстрый, а можно покрапеть часок-другой над алгоритмом и скорость программы возрастет не в два-три раза, а на два-три десятичных порядка.
Чушь 10.06.04 10:30  
Автор: amirul <Serge> Статус: The Elderman
<"чистая" ссылка>
> Я написал программу(MSVC), не очень большую.
> У меня есть и код этой программы и EXE-файл.
> Задача стоит "optimize for speed"..
> Слышал, что если ее "дезасемблировать" а потом в том же
> MSVC собрать заново то она будет работать быстрее...
>
> Правда ли ЭТО?
Нет, это чушь

> И как ЭТО сделать?
Лучший способ получить ассемблерный листинг это включить его создание в самом MSVC

> А может существуют другие способы "optimize for speed" ,
> кроме Release with /O2??
Преждевременная оптимизация - корень всех бед. (с) не помню кто
Нужно оптимизировать не всю программу, а только "бутылочные горлышки", то бишь места, в которых программа проводит наибольшую часть времени при исполнении. Места эти находятся специальными программами - профайлерами (profiler), например TrueTime от Compuware

Еще на код можно натравить VTune от интеля - он показывает как и что можно улучшить в плане оптимизации под интеловский процессоры (правильно парование для U и V конвейеров, выравнивание по границе кеш-строки и пр.)
> Зараннее благодарен за любую информацию..
лучший способ оптимизировать программу - это улучшить... 10.06.04 09:18  
Автор: noonv <Vladimir> Статус: Member
<"чистая" ссылка>
лучший способ оптимизировать программу - это улучшить алгоритм работы;
посмотри какие функции вызывается часто - оптимизируй их(можно и на asm-е переписать)

ну а лучшим дизассемблером является IDA
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach