Out of Memory (heap overflow

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
Аватара пользователя
muskin
Активист
Сообщения: 114
Зарегистрирован: 08 Декабрь 2009, 21:16
Откуда: РК

Out of Memory (heap overflow

Сообщение muskin »

Здравствуйте.
C6.3(ABC)

Возникла такая проблема.
Редактирую форму, на ней ,примерно, около 400 объектов (16 однотипных region-ов, в каждом по 22 элемента, плюс еще разное).
Наступает момент, когда при копировании нескольких элементов возникает ошибка:
Storage Error
Out of Memory (heap overflow).

Оболочка Clarion-a вылетает.
Подскажите, где нужно увеличить heap_size.
Всем пралитарское Спасибо и 'Желаю, чтобы ВСЕ !!!'
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3300
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 15 раз
Поблагодарили: 51 раз
Контактная информация:

Re: Out of Memory (heap overflow

Сообщение Дед Пахом »

Проверьте размер структуры окна - она не может превышать 64K.
С уважением, ДП
Аватара пользователя
muskin
Активист
Сообщения: 114
Зарегистрирован: 08 Декабрь 2009, 21:16
Откуда: РК

Re: Out of Memory (heap overflow

Сообщение muskin »

Глупый вопрос - а как?
Всем пралитарское Спасибо и 'Желаю, чтобы ВСЕ !!!'
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3300
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 15 раз
Поблагодарили: 51 раз
Контактная информация:

Re: Out of Memory (heap overflow

Сообщение Дед Пахом »

Зайдите в текстовое представление WINDOW и скопируйте в файл, ну и размер файла всё покажет.
С уважением, ДП
Аватара пользователя
muskin
Активист
Сообщения: 114
Зарегистрирован: 08 Декабрь 2009, 21:16
Откуда: РК

Re: Out of Memory (heap overflow

Сообщение muskin »

Получилось ~62KB.
Спасибо за науку.
Всем пралитарское Спасибо и 'Желаю, чтобы ВСЕ !!!'
Igor
Бывалый
Сообщения: 75
Зарегистрирован: 08 Июль 2005, 11:03
Откуда: Королев

Re: Out of Memory (heap overflow

Сообщение Igor »

Попробуй динамически создавать контролы (CREATE(...))
Аватара пользователя
muskin
Активист
Сообщения: 114
Зарегистрирован: 08 Декабрь 2009, 21:16
Откуда: РК

Re: Out of Memory (heap overflow

Сообщение muskin »

Скорее всего подойдет Clone(...), а для вставки embeds придется нумеровать поля.
Всем пралитарское Спасибо и 'Желаю, чтобы ВСЕ !!!'
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3300
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 15 раз
Поблагодарили: 51 раз
Контактная информация:

Re: Out of Memory (heap overflow

Сообщение Дед Пахом »

Кстати, ещё в 7-ке ограничнение на 64К сняли.
С уважением, ДП
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3300
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 15 раз
Поблагодарили: 51 раз
Контактная информация:

Re: Out of Memory (heap overflow

Сообщение Дед Пахом »

Можно в текстовом представлении окна поудалять не сильно нужные атрибуты контролов, как то: TIP, FONT... Можно сэкономить пару-тройку килобайтов. А при необходимости восстановить их после OPEN(Window) с помощью ?ControlUse{prop:...}
С уважением, ДП
Shur
Ветеран
Сообщения: 384
Зарегистрирован: 02 Июль 2011, 18:49

Re: Out of Memory (heap overflow

Сообщение Shur »

Не пытаясь обидеть автора. А все ли 16 регионов с 22 контролами каждый на одном экране?
Если нет, то может обойтись одним единственным? И чуть-чуть параметризации.

Если этот вариант не подходит, то лучше переходите на С7/C8, а то глядишь, вам 17-й регион понадобится. -- Там этой проблемы точно нет. Сам сталкивался и сражался с ней на С6.
Проверялось и раньше при миграции приложения, и недавно, сам себе не доверяя за давностью, снова проверял, отвечая в телеконференцию.

Кстати, в 16-битной IDE есть и другие, сходные с этим, ограничения: на число элементов меню во фрейме; на число процедур в едином app.
Учитывайте это при разработке.
Аватара пользователя
muskin
Активист
Сообщения: 114
Зарегистрирован: 08 Декабрь 2009, 21:16
Откуда: РК

Re: Out of Memory (heap overflow

Сообщение muskin »

Всем спасибо за отклик. Все лишнее удалил (в основном Tip-ы и Ico-ы). Вопрос для меня решен.
Не думал, что для C6... это может служит ограничением. Для меня 64KB(Пахомыч) - это просто новая копилка.
Всем пралитарское Спасибо и 'Желаю, чтобы ВСЕ !!!'
Аватара пользователя
RaFaeL
✯ Ветеран ✯
Сообщения: 1412
Зарегистрирован: 24 Март 2009, 17:59
Откуда: НН
Благодарил (а): 12 раз
Поблагодарили: 2 раза
Контактная информация:

Out of Memory (heap overflow

Сообщение RaFaeL »

Отпишусь сюда, вдруг кому-то понадобится. Сегодня наткнулся на такую ошибку, но в другой ситуации - вылетало после сборки приложения. Кучу всего перекопал, нашел решение методом тыка - надо удалить файл C60pe.dat в папке с кларионом (у кого ентерпрайз видимо будет другое название). Там хранятся для чего-то все пути, когда-либо компилировавшиеся (может кэш какой), и когда он становится примерно 3,5 мб то возникает ошибка. Актуально только для С6 и скорее всего также для более ранних
Ответить