Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.06.07;
Скачать: CL | DM;

Вниз

Запись в файл и расход памяти   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.015 c
15-1238663375
Галинка
2009-04-02 13:09
2009.06.07
Приложение автоматизации Ворда: вопрос...


15-1238837032
Minimaltower
2009-04-04 13:23
2009.06.07
Нумерация страниц начиная с третьей в Open Office 3 Write кто знает ПОМОГИТЕ !


15-1237999517
Городской Шаман
2009-03-25 19:45
2009.06.07
Offline репликация данных своими руками.


15-1238605370
Кто б сомневался
2009-04-01 21:02
2009.06.07
April 01: с праздником друзья!


15-1238724570
Anatoly Podgoretsky
2009-04-03 06:09
2009.06.07
Сервера Google DataCenter