2012-05-10 3 views
0

Я хотел бы сделать программу продуктивной и сохранить свой файл очень маленьким. Однако я хотел бы узнать несколько советов, как это сделать.Как запрограммировать небольшую программу?

Например, что лучше для небольшого файла:

Либо:

if .... = '1' then begin 
... 
end; 

или:

if ..... = inttostr(1) then begin 
... 
end; 

или:

if .... = inttostr($0001) then begin 
... 
end; 

или:

case of intvar 
    1: ... 
    2: ... 
end; 

Тогда есть что-то, что я пробовал, и я был удивлен. Я сделал еще одно подразделение в моем проекте, которое хранит строки как константы, а затем я использую константные vars для замены строк в моем проекте. По какой-то причине это повышает мой FileSize, хотя я заменяю дважды используемые строки как var сейчас.

Также лучше хранить вещи в варнах, чем помещать их прямо в код ?! Например:

Function1(param1, param2, param3); // this code is used about 20 times in my project 

или лучше, если я:

Avar = Function1 (param1,param2,param3); // Store this once in a var and then replace it 

А что:

if ... = TRUE 

или:

if .... 

То же, что:

if .... = FALSE 

или:

if not(...)... 

Любые другие советы для программирования продуктивными для меньшего размера файла?

Заранее спасибо.

Я использую Delphi7

+8

То, о чем вы говорите в основном, не имеет или полностью пренебрежимо влияет на размер EXE. –

+4

Если вы хотите ДЕЙСТВИТЕЛЬНО небольшой exe, вы не должны использовать VCL. Это просто. Все упоминаемые вами оптимизации уже обрабатываются компилятором. – whosrdaddy

+4

Большую часть времени продуктивное программирование и размер файла не связаны. Вам следует больше сосредоточиться на удобочитаемости и ремонтопригодности вашего кода. –

ответ

11

Мне жаль быть тупым, но вы ставите телегу впереди лошади.

Если вы действительно хотите знать, как сделать ваш исполняемый файл более мелким, не зная, какие различия будут возникать из-за ваших вариаций кода в ваших примерах, вы должны просто прекратить прямо сейчас и читать/учиться/практиковать, пока не узнаете больше о языка и компилятора.

Тогда вы поймете, что ваш вопрос не имеет смысла как таковой, как вы уже можете видеть по всем соответствующим комментариям, которые у вас есть.

  • точно такой же исходный код может привести к совершенно разных исполняемых файлов и другого исходного кода может привести к таким же исполняемый файл, в зависимости от опций компилятора/оптимизаций
  • если ваша главная цель состоит в том, чтобы микроуправлением/контролировать сгенерированный exe, программа непосредственно в ассемблере.
  • Если вы хотите узнать, что генерируется компилятором, узнайте, как использовать представление CPU.
  • программы для правильности первых, то читаемость/ремонтопригодности
  • только тогда, если это необходимо (подразумевает использование правильных метрик/инструментов), вы можете оптимизировать скорость, использование памяти или размер файла (вероятно, наименее полезным/требуется)
4

Давным-давно я пытался сделать программу как можно меньше, потому что она должна была помещаться на гибкий диск (да, я знаю, что я динозавр). Этот инструмент Splitter был написан в Delphi и имеет размер около 50 КБ.

Чтобы сделать его такой небольшой, необходимо было обойтись без большого количества блоков Delphi (особенно блок Forms и все блоки со ссылками на него). Единственным способом было использовать Windows-API непосредственно для графического интерфейса, и я не могу думать о причине, чтобы сделать это в наши дни, но из интереса.

Как только вы используете VCL, размер exe будет расти намного больше, чем все микро оптимизации в вашем коде вместе могут уменьшить его.

Смежные вопросы