Форум: "Потрепаться";
Текущий архив: 2004.05.16;
Скачать: [xml.tar.bz2];
ВнизВон из памяти Найти похожие ветки
← →
RealRascal © (2004-04-23 00:45) [0]В мой прогамме созается много объектов, она отжирает 700 мегов озу и пишет оут оф мемори. Я проставил везде, где надо, Destroy, они ситуация не изменилась качественно, только медленнее все стало... При вызове free почему-то выскакивает аксесс виола. как быть?
пс причем вот что интересно, по показаниям дисп задач в xp после введения destroy количество занимаемой памяти уменьшилось до положенных 30 мб, а количество виртуальной памяти * = росло до 700...
← →
Anatoly Podgoretsky © (2004-04-23 00:48) [1]Что же ты натворил
← →
Yanis © (2004-04-23 00:51) [2]Прикольная программа. Вот windows всё успевает делать и не жрёт столько памяти :)
← →
ИМХО © (2004-04-23 01:53) [3]Все очень просто, прога называется "Пожиратель Памяти"...
← →
SPeller © (2004-04-23 05:02) [4]Это не твоё творение - шутер в 94 КБ? :))) А то он у меня тоже 700 метров памяти отхавает, а после выхода из него процесс продолжает висеть, не освобождая при этом память.
:-))
← →
Гаврила (2004-04-23 08:47) [5]
> Я проставил везде, где надо, Destroy, они ситуация не изменилась
> качественно, только медленнее все стало... При вызове free
> почему-то выскакивает аксесс виола
Много есть еще на свете загадочного и непознанного :-)
← →
Думкин © (2004-04-23 08:51) [6]
> RealRascal © (23.04.04 00:45)
> При вызове free почему-то выскакивает аксесс виола. как быть?
Есть подозрение, что у тебя ошибка в программе.
← →
Danilka © (2004-04-23 09:04) [7]По-моему, там далеко не одна ошибка. А может-быть и вся программа - большая ошибка. :)
← →
NeyroSpace © (2004-04-23 09:13) [8]Утечка памяти? Может ты указатели уничтожаешь, а не объекты?
← →
Anatoly Podgoretsky © (2004-04-23 09:14) [9]Есть подозрение, что не уничтожает, а рожает
← →
Сергей Суровцев. (2004-04-23 10:20) [10]>Думкин © (23.04.04 08:51) [6]
>Есть подозрение, что у тебя ошибка в программе.
Как можно! К честному человеку и такими подозрениями! :)))
← →
Rule © (2004-04-23 10:43) [11]а по моему ошибка в ДНК :) (шутка, тем более что не моя)
← →
Иксик © (2004-04-23 11:14) [12]
> RealRascal © (23.04.04 00:45)
Программка случайно не с большой БД работает?
← →
Nous Mellon © (2004-04-23 11:47) [13]Может в 17ой строке?
:)
← →
wicked © (2004-04-23 12:15) [14]мда...
> Вонь из памяти
:)
← →
Digitman © (2004-04-23 13:46) [15]
> Я проставил везде, где надо, Destroy
"... а до того момента, пока я не обнаружил "обжорство" моей "прогаммы", я их не ставил ... ни "где надо" ни "где не надо" ... не царское это дело ..."
в связи с этим любопытно было бы узнать, как ты умудрился определить "гденадо"-места ? и уж если таки определил, то что тебе при сей гениальности стоит сиюминутно прекратить "обжорство" ?
← →
Petr V. Abramov © (2004-04-23 15:58) [16]Следующий этап - убедиться, что try .. finally тоже придумано не от нефиг делать :)
← →
RealRascal © (2004-04-23 23:16) [17]прошу прощения за отсутсвие... только щас в сеть смог вылезти...
> Anatoly Podgoretsky © (23.04.04 00:48) [1]
> Что же ты натворил
А что я натворил... не ошибается только тот кто ничего не делает
> SPeller © (23.04.04 05:02) [4]
неа
> > RealRascal © (23.04.04 00:45)
> > При вызове free почему-то выскакивает аксесс виола. как
> быть?
>
> Есть подозрение, что у тебя ошибка в программе.
Прога - реализация МКЭ.
C меньшим количеством узлов все решает правильно(проверено решением модельной задачи моей прогой и на ANSYS - результат совпал с точностью до 7-го знака... и это не предел!:^))
Если и есть ошибка, то только с высвобождением памяти.
Используется модули для работы матрицами(взял с королевства)
LA_MAtrix
> NeyroSpace © (23.04.04 09:13) [8]
> Утечка памяти? Может ты указатели уничтожаешь, а не объекты?
Наверно... Основной класс - матрица - предок TOBJECT
TTemplateMatrix=class(TObject)
protected
FTypeEl :TTypeEl;
FName :string;
FElemOrd:TElemOrd;
FData :Pointer;
FRows,
FColumns :integer;
FOnChange:TNotifyEvent;
{Освобождает память выделенную под данные}
procedure FreeData; virtual; abstract;
...
public
constructor Create(ATypeEl:TTypeEl; const AName:String);
destructor Destroy; override;
...
...
constructor TTemplateMatrix.Create(ATypeEl:TTypeEl; const AName:String);
begin
FTypeEl:=ATypeEl; FName:=AName; FElemOrd:=eoRow;
FData:=nil; FRows:=0; FColumns:=0;
end;
destructor TTemplateMatrix.Destroy;
begin
FreeData;
inherited Destroy;
end;
А метод FreeData не реализован!!! Может в этом собака порылась?
> Иксик © (23.04.04 11:14) [12]
Нет. Никакого отношения к БД она не имеет.
> Digitman © (23.04.04 13:46) [15]
Ну вот, например, после того, как матрица становиться...
По расчетам, матрица таких размеров должна занимать в конце расчетов, несколько мегабайт. В процессе вычисления создается много матриц, они всяко там перемножаются, складываются и все такое... и после того как матрица становиться не нужна (если дальше нигде не используется), так сразу и вызываю деструктор...
> Petr V. Abramov © (23.04.04 15:58) [16]
> Следующий этап - убедиться, что try .. finally тоже придумано
> не от нефиг делать :)
Не, не катит... обявлено как глобальное и используется в разных местах...хотя возможно...
← →
nikkie © (2004-04-24 02:13) [18]>Прога - реализация МКЭ.
после 10 минут размышлений типа
Международная Космическая Экспедиция?
Московская Комическая Экспозиция?
наконец в моей измученной недосыпанием голове проявилось
Метод Конечных Элементов!
но что это такое и причем тут матрицы забыл я крепко...
← →
УНЯ © (2004-04-24 02:21) [19]МКЭ оно и в Африке мкэ... А ты случайно не продолжение Матрицы-революции пишишь?
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2004.05.16;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 2.148 c