EXE, ресурс и сокращение кода

Вам нужно использовать два [[, чтобы получить содержимое столбца:

 df <- datasets::mtcars
 for (i in 1:2) df[[i]]

Это также будет работать для имен столбцов

for (i in names(df)) df[[i]]

Не уверен, что вы пытаетесь чтобы достичь хотя. Вы также можете просто сделать:

lapply(df[1:2], table)
5
задан GEOCHET 1 June 2009 в 19:11
поделиться

12 ответов

Поместите любые изображения, которые программа использует несколько раз в списки изображений или компоненты TGraphic, и поместила тех, которые в модуль данных. Свяжите все свои компоненты с помощью этих глифов для списков изображений. При использовании Инспектора объектов для добавления того же глифа к нескольким компонентам, Вы закончите с несколькими копиями его, увеличиваясь и Ваше время загрузки и Ваш размер исполняемого и рабочего набора.

8
ответ дан 18 December 2019 в 05:13
поделиться

Хороший прием для сокращения исполняемого размера (на самом деле, размер изображения PE, поскольку это относится к DLL также), когда перемещение не является проблемой:

Пропустите информацию перемещения!

В Delphi Вы могли сделать это как это:

// Remove relocation table (generates smaller executables) :
// (See http://hallvards.blogspot.com/2006/09/hack12-create-smaller-exe-files.html)
{$SetPEFlags 1} // 1 = Windows.IMAGE_FILE_RELOCS_STRIPPED

Удачи!

7
ответ дан 18 December 2019 в 05:13
поделиться

Что относительно того, чтобы выключить отладочную информацию в опциях проекта:

  • никакая информация об отладке
  • никакие проверки на этапе выполнения
  • сократите количество внешнего использования единиц, если это возможно.

Но информация об отладке может быть главным уничтожителем.

10
ответ дан 18 December 2019 в 05:13
поделиться

Я не потратил бы комментариев удаления времени, компилятор разделяет их так или иначе

Вы могли сослаться на свои изображения от внешнего сервиса (например, Amazon S3)

9
ответ дан 18 December 2019 в 05:13
поделиться

Отбросьте VCL и используйте KOL и MCK: http://kolmck.net/

Это - радикальное и очень большое изменение, но снизит exe размер.

4
ответ дан 18 December 2019 в 05:13
поделиться

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

procedure TMainForm.OptionDialog(Sender: TObject);
var
  Dlg: TOptionDialog;
begin
  Dlg := TOptionDialog.Create(nil);
  try
    // prepare dialog
    if Dlg.ShowModal = mrOK then begin
      // apply changed settings
    end;
  finally
    Dlg.Free;
  end;
end;

Это сократит время загрузки приложения и уменьшит Ваше полное использование ресурсов, специально для сложных диалоговых окон со многими средствами управления.

4
ответ дан 18 December 2019 в 05:13
поделиться

Имейте размеры сначала, ЗАТЕМ оптимизируйте. Насколько большой Ваше приложение, и как большой хотели бы Вы это быть?

Вы обеспокоены...

Размер приложения.EXE файл на диске? Затем...

  • Сборка с пакетами во время выполнения на. Вы получите крошечный.EXE, но должны будете распределить .bpls также.

Оперативная память используется приложением? Затем...

  • Сборка с пакетами во время выполнения прочь - компоновщик опустит большинство неиспользованных частей пакетов.

Размер установщика приложения? Затем...

  • Сборка с пакетами во время выполнения прочь
  • Используйте установку Inno
  • Большинство предложений выше?

Размер приложения ПЛЮС PACKAGES/DLLS после установки? Затем...

  • Сборка с пакетами во время выполнения прочь, и использование UPX
4
ответ дан 18 December 2019 в 05:13
поделиться
Project -> Options -> Compiler:
===============================
Optimization ON
Debug Information OFF
Local Symbols OFF
Reference Info OFF
Use debug DCUs OFF

Project -> Options -> Packages:
===============================
Build with runtime packages ON (but you will have to distribute your BPLs!)
Note to non-delphi folks:
a BPL is just a DLL, but with magic Delphi dust to make it easier to use.

Эта статья может быть полезна для Вас.

3
ответ дан 18 December 2019 в 05:13
поделиться

Это действительно стоит всей этой проблемы? Мы не живем во времена памяти на 640 КБ больше.

Если Вы хотите Вас, EXE, чтобы быть меньшим, затем используют динамическое подключение пакетов и библиотек. Это дает большую часть повышения. Также поместите все свои ресурсы (изображения, звуки) в отдельный DLL. Вы ничего не сохраните путем удаления комментариев и написания всего кода в одной длинной линии.

2
ответ дан 18 December 2019 в 05:13
поделиться

Обычно говорящий, если Вы хотите меньший размер EXE затем, идут с более ранней версией Delphi.

2
ответ дан 18 December 2019 в 05:13
поделиться

Используйте профилировщика памяти как тот от Красного Логического элемента для получения оперативного представления в использование памяти во время выполнения.

0
ответ дан 18 December 2019 в 05:13
поделиться

Я всегда использую UPX для сжатия EXE-файлов. Это работает отлично, часто приводя к фактору 2 сжатия. И, конечно, отключите всю информацию об отладке, поможет уменьшить размер файла.

1
ответ дан 18 December 2019 в 05:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: