Максимальный размер массива в 32 битном приложении MAX DIM
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
-
- Активист
- Сообщения: 185
- Зарегистрирован: 07 Февраль 2017, 16:58
Максимальный размер массива в 32 битном приложении MAX DIM
Функция обработки - на Clarion... Так надо...
- Дед Пахом
- Старичок
- Сообщения: 3133
- Зарегистрирован: 07 Июль 2005, 16:51
- Откуда: Москва, Россия
- Благодарил (а): 10 раз
- Поблагодарили: 28 раз
- Контактная информация:
-
- Активист
- Сообщения: 185
- Зарегистрирован: 07 Февраль 2017, 16:58
Максимальный размер массива в 32 битном приложении MAX DIM
Эту функцию вызывают и из Clarion, и из Delphi.
-
- Активист
- Сообщения: 185
- Зарегистрирован: 07 Февраль 2017, 16:58
Максимальный размер массива в 32 битном приложении MAX DIM
Итак, резюме...
В итоге, все получилось через NEW CSTRING: резервируется сколько надо, пишется, сколько надо. Практический потолок, как и говорил Юра Философов, около 800 Мб. В принципе, можно и больше, но если памяти остается слишком мало, начинаются чудеса с вызовом функций: видимо, не хватает памяти на переключение контекста.
NEW STRING: резервируется, сколько надо, пишется, в зависимости от обстоятельств, 50 - 100 Мб.
Функции API (malloc, LocalAlloc, HeapAlloc) почему-то не резервируют память свыше определенного объема.
VirtualAlloc - не пробовал.
Как-то так...
Надеюсь, кому-нибудь поможет...
В итоге, все получилось через NEW CSTRING: резервируется сколько надо, пишется, сколько надо. Практический потолок, как и говорил Юра Философов, около 800 Мб. В принципе, можно и больше, но если памяти остается слишком мало, начинаются чудеса с вызовом функций: видимо, не хватает памяти на переключение контекста.
NEW STRING: резервируется, сколько надо, пишется, в зависимости от обстоятельств, 50 - 100 Мб.
Функции API (malloc, LocalAlloc, HeapAlloc) почему-то не резервируют память свыше определенного объема.
VirtualAlloc - не пробовал.
Как-то так...
Надеюсь, кому-нибудь поможет...
- Дед Пахом
- Старичок
- Сообщения: 3133
- Зарегистрирован: 07 Июль 2005, 16:51
- Откуда: Москва, Россия
- Благодарил (а): 10 раз
- Поблагодарили: 28 раз
- Контактная информация:
Максимальный размер массива в 32 битном приложении MAX DIM
В ньюс-группах всплыла та же проблема с очень большими строками. Предлагается использовать LARGE_ADDRESS в EXP файле для увеличения виртуального адресного пространства.
С уважением, ДП
- Дед Пахом
- Старичок
- Сообщения: 3133
- Зарегистрирован: 07 Июль 2005, 16:51
- Откуда: Москва, Россия
- Благодарил (а): 10 раз
- Поблагодарили: 28 раз
- Контактная информация:
Максимальный размер массива в 32 битном приложении MAX DIM
У них так же, как и везде: чел, просивший помощи, выкрутился сам, за совет сказал спасибо, но проверять не собирается.
С уважением, ДП