грабли со #STACK

Раздел посвящен программированию с использованием Power Basic.
volo
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 142
Зарегистрирован: 10.12.2004 (Пт) 11:18
Откуда: Soviet Union

грабли со #STACK

Сообщение volo » 19.06.2007 (Вт) 12:59

Начала "вдруг" вылетать программа по обработке изображений
Попались дотошные монгольские клиенты.

Оказалось программа начинает вылетать при использовании обработки изображений "большого" размера. Тестовые изображения работают нормально.

Я наверное где-то упустил обсуждение проблемы с #STACK.
"По умолчанию #STACK" программа тихо "умирала" на очередном цикле обработки "большого" изображения. Убил пол-дня в поисках "протечки памяти", пока не поставил

#STACK 5000000& - тогда все заработало нормально

это касаемо 7 версии компилятора

т.е. если STACK будет иметь значение "по умолчанию" то программа тупо завершает работу без предупреждений. Я не использую перегонку массивов через стек, массивы в основном лежат в глобальных переменных...

Dark Machine
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 126
Зарегистрирован: 26.05.2004 (Ср) 13:12

Сообщение Dark Machine » 22.06.2007 (Пт) 12:34

#STACK 5000000&

Даа, многовато, наверно выполняется много рекурсий со многими параметрами ...

volo
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 142
Зарегистрирован: 10.12.2004 (Пт) 11:18
Откуда: Soviet Union

Сообщение volo » 03.08.2007 (Пт) 16:54

Dark Machine писал(а):
#STACK 5000000&

Даа, многовато, наверно выполняется много рекурсий со многими параметрами ...



...Вылетало на обработке изображений размером от 3264x2448 пиксел,
(применялась "полиноминальная реализация" для преобразования каждого пиксела)

Dark Machine
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 126
Зарегистрирован: 26.05.2004 (Ср) 13:12

Сообщение Dark Machine » 04.08.2007 (Сб) 8:44

В одном из моих проектов была обработка очень больших изображений размерами 6000х4000, 256 цветов. Во избежании задержки пришлось пропорционально разделить на 4 квадранта каждый по 3000х2000 (2 на 2) или на 12 квадрантов по 2000х1000 (3 на 4) каждый в зависимости от типа алгоритма.
Каждый такой квадрант обрабатывался в отдельном потоке.
Старался избегать рекурсий, при этом процедуры увеличивались в объеме.


Вернуться в Power Basic

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 21

    TopList  
cron