|
#1
|
||||
|
||||
Оптимизация кода
Возникла такая мысль. Код ведь, так или иначе, преобразуется в ассемблер, а он, насколько я знаю, нелинеен только благодаря jmp и test... (ну, или я что-то забыл).
В юнитах при программировании в Делфи, помимо функций, непосредственно используемых программой, содержится много ненужного мусора, который вкомпиливается в программу. Алгоритм оптимизации: 1. Переводим код в ассемблер (можно и проводить дизассемблирование скомпилированной программы). 2. Анализируем (автоматически, построчно), находим участки, которые не будут выполнены ни при каких условиях. 3. Вырезаем эти участки. 4. Повторяем 2-3, пока хоть одна строка вырезается. 5. Компилируем программу заново уже из урезанного кода, и получаем программу в несколько раз меньше исходной. Поправьте меня, если я не прав. А если прав - то как это осуществить? Оставайтесь хорошими людьми... VK id2634397, ds [at] phoenix [dot] dj |
#2
|
||||
|
||||
язык ассемблера это тожа символьный язык. делфи программа компилируется в машинный код. оптимизатор делфи по идее должен не используемое выкидывать. так же для уменьшения кода можно использовать обфускацию. все эти понятия есть в вике. для мобильных java-приложений использую ProGuard - реально помогает: уменьшает размер и делает плохочитаемым декомпилируемый код. для делфи не интересовался подобными фишками - у меня нет таких программ, чтобы им не хватило памяти на современных компьютерах, ОСях)
Последний раз редактировалось NumLock, 01.08.2010 в 10:10. |