Форум: "Начинающим";
Текущий архив: 2009.06.07;
Скачать: [xml.tar.bz2];
ВнизЗапись в файл и расход памяти Найти похожие ветки
← →
Darvin (2009-04-14 16:41) [0]Здравствуйте!
Делаю логирование некоторых событий в файлы. Запись делается примерно 20 - 50 раз в секунду. Файлы ограничены по длине, при достижении заданной длины, меняется FFileName, пишем в другой файл. Записываю следующим образом:
var
HFile : File;
FBuffer : array of Byte;
begin
...
AssignFile ( HFile, FFileName );
if FileExists ( FFileName ) then
begin
Reset ( HFile, 1 );
Seek ( HFile, FileSize(HFile) );
end
else
Rewrite ( HFile, 1 );
if Length(FBuffer) > 0 then
BlockWrite ( HFile, FBuffer[0], FDataPnt );
CloseFile ( HFile );
При этом увеличивается расход памяти приложением в момент смены имени файла, начала записи в другой файл. Если писать в один файл, то память не расходуется.
Полагаю, что расход памяти связан с тем, что я не "отдаю" системе дескриптор файла. Как можно решить эту проблему?
← →
Palladin © (2009-04-14 16:43) [1]Здесь рыбы нет!
← →
Darvin (2009-04-14 16:48) [2]?
← →
Riply © (2009-04-14 18:13) [3]> [2] Darvin (14.04.09 16:48)
> ?
Возможно, Palladin имел ввиду первую заповедь рыболова: "Ловить рыбу там, где она есть" ? :)
(Иными словами, искать утечку в другом месте)
← →
sniknik © (2009-04-14 18:45) [4]> Возможно, Palladin имел ввиду первую заповедь рыболова:
это не заповедь, это анекдот. про директора катка.
← →
DVM © (2009-04-14 18:48) [5]
> При этом увеличивается расход памяти приложением
где смотришь?
← →
Riply © (2009-04-14 19:33) [6]> [4] sniknik © (14.04.09 18:45)
> это не заповедь, это анекдот. про директора катка.
Вот черт ! Даже здесь у меня пробелы в образовании :)
← →
Slym © (2009-04-15 05:15) [7]Palladin © (14.04.09 16:43) [1]
почему нет?
может IOResult нехороший, а игнорится
← →
Palladin © (2009-04-15 07:36) [8]
> Slym © (15.04.09 05:15) [7]
Нехороший IOResult обычно вызывает исключение.
← →
Darvin (2009-04-21 15:21) [9]Прошу прощения, что долго молчал, был в отъезде.
> DVM
Смотрю диспетчером задач.
> all
Рыбы там, похоже, нет. Но есть другое интересное наблюдение. Запускаю некое приложение, которое ничего не делает и сворачиваю его. Смотрю там же. Пока ничего не делаю на компьютере память этим приложением не расходуется. Как только начинаю запускать разные приложения, начинает расти расход памяти для этого приложения. С чем это может быть связано?
← →
DVM © (2009-04-21 15:25) [10]
> Darvin (21.04.09 15:21) [9]
> Смотрю диспетчером задач.
Это не лучший вариант. К тому же там надо смотреть столбец виртуальная память. Там несколько странные показания, утечку на них не поймаешь.
Лучше взять FastMM4 или еще лучше MemProof.
← →
Darvin (2009-04-21 15:48) [11]спасибо
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2009.06.07;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.004 c