|
|
|
ДОПИСЫВАТЬ текст.файл - не открывая его
|
|||
|---|---|---|---|
|
#18+
HOME_X Например - где здесь может быть ошибка Если идет вызов из разных потоков, а по видимому так оно и есть, то не хватает еще средств синхронизации ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2020, 14:18 |
|
||
|
ДОПИСЫВАТЬ текст.файл - не открывая его
|
|||
|---|---|---|---|
|
#18+
HOME_X HOME_X, Код: pascal 1. Не фига не помогает А если так: Код: plaintext 1. 2. 3. 4. 5. Функции CreateFile, SetFilePointer не считывают содержимое файла в память. Проверьте под пошаговым отладчиком на файле объемом в несколько гигабайт. Наблюдайте в TaskManager-e потребляемый объем памяти программой и системой. И еще. Хорошим тоном считается проверять результат работы всех!!! функций. Включая CreateFile, CloseFile, WriteFile... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2020, 14:34 |
|
||
|
ДОПИСЫВАТЬ текст.файл - не открывая его
|
|||
|---|---|---|---|
|
#18+
DSKalugin Класс для логирования. Исключая сомнительную необходимость в стриме, ForceDirectories возвращает флаг результата, а значит, дальнейшая проверка через exist не нужна ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2020, 15:15 |
|
||
|
ДОПИСЫВАТЬ текст.файл - не открывая его
|
|||
|---|---|---|---|
|
#18+
Господа ! Спасибо за помощь и критику И особенно спасибо за примеры КОД По крайней мере понятно что именно не работает ... Насчет производительности тоже согласен - возможно надо менять архитектуру объекта и режим лога - держать открытым определив точки Flush Забил затычку - буду НА ПОДУМАТЬ Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2020, 17:19 |
|
||
|
ДОПИСЫВАТЬ текст.файл - не открывая его
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2020, 18:16 |
|
||
|
ДОПИСЫВАТЬ текст.файл - не открывая его
|
|||
|---|---|---|---|
|
#18+
DSKalugin Класс для логирования. Пишет по кругу файл с максимальным размером 64МБ Код: pascal 1. 2. Изучил Ваш пример Не совсем ясно в какой момент идет физический Flush на диск ? В момент TSaveStream.Free или в момент FS.Write(PAnsiChar(TS)^, Length(TS)) Или объект имеет некий буфер в опер.памяти и при его заполнении самостоятельно сбрасывает на диск. Обращали внимание ? спасибо за код ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2020, 23:20 |
|
||
|
ДОПИСЫВАТЬ текст.файл - не открывая его
|
|||
|---|---|---|---|
|
#18+
HOME_X, "В момент TSaveStream.Free" - хотел сказать TFileStream .Free ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2020, 23:24 |
|
||
|
ДОПИСЫВАТЬ текст.файл - не открывая его
|
|||
|---|---|---|---|
|
#18+
DSKalugin Класс для логирования. Пишет по кругу файл с максимальным размером 64МБ Flush на диск происходит в момент уничтожения объекта TFileStream.Free Проверяно на практике. Отсюда отсутствие конфликтов при циклических вызовах. Т.е. работая с процессами проги Вы увеличиваете использование оперативной памяти еще на 64 MB потом просто обнуляете лог и пишите его понову. Вывод сделаете сами Благодарен за код ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2020, 01:11 |
|
||
|
|

start [/forum/topic.php?fid=58&gotonew=1&tid=2037777]: |
0ms |
get settings: |
9ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
166ms |
get topic data: |
8ms |
get first new msg: |
6ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
2ms |
| others: | 280ms |
| total: | 536ms |

| 0 / 0 |
