Delphi выдает код с 64-битными указателями. Такие указатели способны адресовать 264 байта, то есть более 1 ТБ. Любые ограничения накладываются дизайном виртуальной памяти операционной системы и/или лицензией, и компилятор Delphi ничего не знает о таких ограничениях. Во время выполнения система применяет ограничения памяти, и ваш код будет подчиняться этим ограничениям. Но сама Delphi не имеет ограничений по адресации.
Точно так же FastMM не имеет понятия ограничения в 1 ТБ. FastMM сообщит об ошибках нехватки памяти, когда система сообщит, что память исчерпана.
Могут ли Delphi/FastMM обращаться так же, как спецификации для ОС?
да.
В сторону. Старые 32-разрядные версии Delphi, в которых использовался диспетчер памяти Borland, были несовместимы с адресами в диапазоне 2–4 ГБ. Эта проблема проявляется, если такой код Delphi выполняется в процессе, помеченном как поддерживающий большие адреса.
Я упоминаю об этом, чтобы проиллюстрировать, как может случиться так, что ваш инструмент разработки налагает на вас ограничения сверх ограничений операционной системы. Сейчас с 64-битной Delphi таких проблем нет, но вопрос, который вы задаете, вполне уместен.
person
David Heffernan
schedule
27.11.2013