информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Сетевые кракеры и правда о деле ЛевинаАтака на Internet
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Очередное исследование 19 миллиардов... 
 Оптимизация ввода-вывода как инструмент... 
 Зловреды выбирают Lisp и Delphi 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / beginners
Имя Пароль
если вы видите этот текст, отключите в настройках форума использование JavaScript
ФОРУМ
все доски
FAQ
IRC
новые сообщения
site updates
guestbook
beginners
sysadmin
programming
operating systems
theory
web building
software
hardware
networking
law
hacking
gadgets
job
dnet
humor
miscellaneous
scrap
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
Господа, будьте снисходительны, не бросайтесь сразу штрафовать за, как вам кажется, глупые вопросы - beginners на то и beginners.
Чушь 10.06.04 10:30  Число просмотров: 1243
Автор: amirul <Serge> Статус: The Elderman
<"чистая" ссылка>
> Я написал программу(MSVC), не очень большую.
> У меня есть и код этой программы и EXE-файл.
> Задача стоит "optimize for speed"..
> Слышал, что если ее "дезасемблировать" а потом в том же
> MSVC собрать заново то она будет работать быстрее...
>
> Правда ли ЭТО?
Нет, это чушь

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

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

Еще на код можно натравить VTune от интеля - он показывает как и что можно улучшить в плане оптимизации под интеловский процессоры (правильно парование для U и V конвейеров, выравнивание по границе кеш-строки и пр.)
> Зараннее благодарен за любую информацию..
<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-2025 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach