Питання пам'ять сервера (stack size, heap size, data size, code size) архів - pro pawn - портал про

Всім прівет.Меня недавно зацікавили рядки в pawno:
Header size: 9068 bytes - Це начебто пам'ять витрачена на індекси і ще що то паблік. (Якщо немає - поправте)
Code size: 909660 bytes - Хотілося б дізнатися про це.
Data size: 957928 bytes - Про це тоже.Поподробнее якщо можна :)
Stack / heap size: 16384 bytes; estimated max. usage = 3554 cells (14216 bytes) - ну це як я знаю пам'ять стека / витрачена пам'ять.
Total requirements: 1893040 bytes - І це напевно сума всіх значень вище ..

Header size - розмір заголовка AMX. Зазвичай там знаходиться таблиця експортованих public-функцій і змінних.
Data size - розмір даних (змінні і константи).
Code size - розмір коду. Якщо конкретніше, то це розмір згенерованих інструкцій AMX, так що не намагайся в .pwn вміщати весь код в один рядок - компілятору плювати на те, як написаний вихідний код.
Stack / heap size - обсяг пам'яті, що виділяється під стек. Зазвичай під стек виділяється 16384 байта (16 Кб). Якщо використовувати директиву #pragma dynamic, під стек буде виділятися стільки байт, скільки вказано в директиві, але в твоєму випадку це не потрібно, тому що розраховане компілятором максимальне використання стека менше порога в 16384 (14216 bytes).

Все це впливає на загальний обсяг пам'яті, використовуваної сервером. Зрозуміло, потрібно завжди прагнути до того, щоб цей обсяг був якомога менше, тому що деякі хостинги можуть не потягнути всякі RLS з 100500 Мб пам'яті в Total requirements. А для цього потрібно і з змінних сміття прибирати, і говнокод переписувати, багато чого.

Переповнена пам'ять стека.
Моя порада (швидше за все єдиний вірний для цього випадку, та поправлять мене величезним досвідом): зменшуй числа в значеннях змінних, зокрема "new", так як стек заповнюється невикористовуваними осередками. Підраховуй все розміри змінних і виставляй їх бажано за розміром, і не забувай +1 осередок під нульове значення.