Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
2-1239346556
Alex34
2009-04-10 10:55
2009.06.07
Сортировка в DBGrid


15-1238614397
DMM
2009-04-01 23:33
2009.06.07
Будущее Делфи?


2-1240404688
гранит
2009-04-22 16:51
2009.06.07
БД


2-1240393863
IceBeerg
2009-04-22 13:51
2009.06.07
TStringList...IndexOf и Find


2-1239854707
Чипырик
2009-04-16 08:05
2009.06.07
OpenPictureDialog.InitialDir





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский