Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Увеличивается размер используемой памяти!!!! Как очистить??? 
V
    Опции темы
mspuz
Дата 12.1.2006, 10:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 304
Регистрация: 20.6.2005
Где: Ногинск

Репутация: нет
Всего: нет



Я подключаюсь к таблице dbf с помощью компонента TDBF. Затем программе передается строка из таблици, с которой производятся различные действия и затем в dbf'ник заносятся изменения. В ходе работы программы используемая оперативка возрастает с 5 до 60 мВ и затем винда выкидывает мою прогу с ошибкой "Stack overflow". Кэширование TDBF отключенно по умолчанию и я его не включаю. Мне кажется, что проблема в TDBF, вернее в том, что все вносимые изменения хранятся в памяти -> количество изменений растет -> количество используемой памяти возрастает. Возможно проблема не в этом, но ошибка вылетает именно в модуле компонента TDBF. Помогите!!!!
PM MAIL   Вверх
Alex
Дата 12.1.2006, 10:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 80
Всего: 162



Если есть исходники компонента можно попробывать посмотреть их на предмет утечек. В обще сколько изменений вы делаете, что у вас 50М памяти расходуется?


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
mspuz
Дата 12.1.2006, 10:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 304
Регистрация: 20.6.2005
Где: Ногинск

Репутация: нет
Всего: нет



Alex Успевает обработать примерно 1500 записей.
PM MAIL   Вверх
Albinos_x
Дата 12.1.2006, 10:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 26
Всего: 108



Цитата(mspuz @ 12.1.2006, 10:43 Найти цитируемый пост)

Alex Успевает обработать примерно 1500 записей.

а пробовали ... допустим через каждую сотню буффер сбрасывать?


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
mspuz
Дата 12.1.2006, 11:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 304
Регистрация: 20.6.2005
Где: Ногинск

Репутация: нет
Всего: нет



Albinos_x Какой буфер??? TDBF??? Нет не пробовал, сейчас сделаем. И еще - у меня реализован автоматический и ручной режим обработки. При ручном после обработки каждой записи программа останавливается и показывает результат, а при автоматическом просто прет дальше. Так вот переполнение происходит при автоматическом режиме, а при ручном состояние памяти стабильно!!!!
PM MAIL   Вверх
Albinos_x
Дата 12.1.2006, 11:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 26
Всего: 108



скорее всего обычная баналная ошибка по невнимательности в коде...один раз подобная проблема была, тоже думал что переполнение стека, но оказалось моя ошибка .... так что советую проверить ещё сам алгоритм... можно в пошаговом режиме... или через точку останова...


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
Alex
Дата 12.1.2006, 16:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 80
Всего: 162



При автоматической обработке while ни где не делаете?
Поверить в то, что ошибка в компонентах честно сказать сложно, хотя и возможно. Скорей всего ошибка у вас. И пока вы не приведете кусок кода где возникает ошибка ответ может быть только один: "Ошибка в 17 строке"



--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
mspuz
Дата 12.1.2006, 17:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 304
Регистрация: 20.6.2005
Где: Ногинск

Репутация: нет
Всего: нет



Все понял в чем ошибка - все намного хуже чем я предпологал smile . Я ОЧЕНЬ криво написал прогу. Получается у меня из одно процедуры вызывается вторая, которая в свою очередь может вызвать первую, в результате в стеке накапливается количество адресов возврата, что и вызывает переполнение стека (Stack overflow - практически по руски написано). Что делать?????? Нельзя ли выйти из процедуры окончательно, вернее вызвать процедурку, которая в первую очередь убьет прежнюю процедуру, а затем вызовет ту вторую????? Проект очень большой и переписывать его нет возможности smile . Помогите!!!
PM MAIL   Вверх
_hunter
Дата 12.1.2006, 17:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 15
Всего: 98



при чем тут размеры проекта? тебе нужно переписать всего две функции...


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
mspuz
Дата 12.1.2006, 18:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 304
Регистрация: 20.6.2005
Где: Ногинск

Репутация: нет
Всего: нет



Все разобрался - все оказалось давольно просто. Если у кого такие проблемы обращайтесь - поделюсь smile . Но урок был на всю жизнь!

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1466 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.