Mario_r4 wrote:
Akyltist
А стоит ли овчинка выделки? Есть вероятность, что использование менеджера памяти даст заметное замедление скорости работы кода, да и в конечном счете внезапно окажется, что накладные расходы нивелируют экономию памяти. Может просто сразу выделять 4К вместо 256 байт? Меня терзают смутные сомнения что величина в 256 байт как-то связана с некоторыми системными ограничениями в ядре, которые не факт что будут постоянными величинами в будущем. Скажем то же значение для хранения путей к файлам сильно желательно делать с запасом - 4К как раз хороший-годный запас.
С обысными строками так и есть, по 4кб, но речь идет о неком аналоге ShortString (длинна 256 байт), это даст более приемлемые расходы памяти. Как пример, описание пути к файлу в тех же zip архивах, согласно сорцам 7z (array [0..255] of char) что конечно странно, учитывая что размер считывается в word а не в byte. Вот что например выдает винрар при попытке распаковать подобный архив, с длинной для путей больше 256 байт.
Quote:
! E:\Kolibri\zip\6666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666.zip: Невозможно создать Kolibri\zip\6666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666\55555555555555555555555555555555555555555555555555555\tzip-viewer\TZip_Viewer\PROJECT1.dpr
Общая длина пути и имени файла не должна превышать 260 символов
По поводу, стоит ли овчинка выделки? Не знаю, для кусков произвольной длины да, возможно накладные расходы все перекроют, но для выделения блоками по 256, думаю нет, как ни как кратное степени 2ки)