Советы по Delphi



         

Управление размером сегмента данных - часть 3


/p>

Как влияют компоненты на размер данных?

Вот список компонентов со страниц Standard, Additional, Data Access и Data Control (часть списка) палитры компонентов. В списке приведен размер компилиции после добавления к новому проекту единственного экземпляра компонента. Список отсортирован согласно количеству расходуемой памяти:

Компонент Прил. Байтов в свыше байт. 3,636 table 4272 636 batchmove 4272 636 storedproc 4258 622 query 4250 614 database 4036 400 datasource 3886 250 outline 3838 202 bitbtn 3816 180 stringgrid 3794 158 drawgrid 3790 154 maskedit 3762 126 memo 3750 114 report 3722 86 listbox 3704 68 edit 3694 58 tabset 3692 56 combobox 3674 38 scrollbar 3654 18 button 3652 16 checkbox 3652 16 radiobutton 3652 16 radiogroup 3652 16 panel 3650 14 label 3648 12 speedbutton 3646 10 header 3644 8 scrollbox 3644 8 notebook 3638 2 menu 3636 0 groupbox 3636 0 tabbednotebook 3636 0 image 3636 0 shape 3636 0 Как управлять размером сегмента данных?

  1. Избегайте объявления глобальных переменных и типизированных констант, особенно больших массивов. Вместо этого объявляйте тип и указель на него. Затем пользуйтесь функциями для работы с памятью, например, Getmem, которая распределит вам память в глобальной куче. Это уменьшит использование ресурсов в сегменте данных до 4 байт, необходимых для переменной указательного типа. Смотрите ниже пример кода.
  2. Отдавайте себе отчет о влиянии компонентов. Смотри выше.
  3. Если у вас имеется множество строк, или массив строк, распределяйте это динамически. Примечание: по умолчанию длина строки равна 255 символам -- объявляйте, где это возможно, специфический размер строки: (например, MyShortString: string[20]).
  4. При необходимости работать с большим количеством строк рекомендуется использовать объект TStringList.
  5. Тип Pchar, "указатель на строку", может быть использован для динамического создания и управления символьными строками, используя при этом небольшое размер сегмента данных. Смотри раздел электронной справки "String-handling routines (Null-terminated)" (подпрограммы обработки строк (с терминирующим нулем)).
  6. Информация, необходимая для работы с памятью, доступна в Object Pascal Language Guide (руководство по языку Object Pascal), OBJLANG.ZIP и может быть загружена из Compuserve, форум DELPHI, или из Интернета по адресу .
Альтернатива для глобального объявления большой структуры




Содержание  Назад  Вперед