Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
[PHP] Нересурсоёмкая множественная запись текста в файл |

30.03.2010, 09:19
|
|
Участник форума
Регистрация: 27.04.2008
Сообщений: 224
Провел на форуме: 140661
Репутация:
313
|
|
[PHP] Нересурсоёмкая множественная запись текста в файл
Здравствуйте. Есть у меня код который должен выполнять ~1500 "лёгковесных" (для железа) операций. Запускается он на очень слабом компьютере - 250 МГц, 128Mb RAM. Для большего контроля над его выполнением мне захотелось сделать логирование - после каждой операции заносить сообщение с некоторой информацией в лог-файл. Причём нельзя сделать так, чтоб лог открывать в начале работы и сохранять только в конце. Нужно сохранять изменения именно после прохождения каждой операции, что в случае сбоя сервера я смог увидеть на каком именно шаге была остановлена работа. Получается что за всю работу скрипта, должно быть выполнено ~1500 отдельных записей в лог.
Как это лучше делать не таком железе? Через file_put_contents или fopen/fwrite/fclose? Может вообще переложить это на ОС выполняя каждый раз
echo "информация" >> path/to/log.txt
? Или, быть может, есть ещё какие-то варианты?
|
|
|

30.03.2010, 11:49
|
|
Участник форума
Регистрация: 22.02.2007
Сообщений: 213
Провел на форуме: 388345
Репутация:
58
|
|
Еще несколько вариантов:
1. Использовать для хранения логов какую-нибудь легковесную БД
2. Использовать временное хранение логов в памяти и сохранять в лог каждую минуту (или чаще)
3. Бредовый вариант: сохранять каждую запись в отдельный файл и папку названную по времени
|
|
|

30.03.2010, 11:57
|
|
Постоянный
Регистрация: 16.04.2008
Сообщений: 889
Провел на форуме: 12942062
Репутация:
1550
|
|
Я щитаю, fwrite из предложенного буде самым то
Сообщение от ZagZag
Еще несколько вариантов:
1. Использовать для хранения логов какую-нибудь легковесную БД
2. Использовать временное хранение логов в памяти и сохранять в лог каждую минуту (или чаще)
3. Бредовый вариант: сохранять каждую запись в отдельный файл и папку названную по времени
1, Я не думаю, что БД на таком железе будет лучшим вариантом
2. Вариант окейный - аля кеширование - но тСу надо за всеми изменениями следить - останвока сервака может и не попасть точно в минуту 
3. Вообще бред, так мучать старушку-комп, полторы тысячи файлов - это круто 
|
|
|

30.03.2010, 12:16
|
|
Участник форума
Регистрация: 27.04.2008
Сообщений: 224
Провел на форуме: 140661
Репутация:
313
|
|
ZagZag, спасибо, но:
1. Как сказал wildshaman, БД на таком железе не лучший вариант. Всётаки мне кажется что помещение записи даже в SQLite будет медленнее чем тоже самое но в текстовый файл.
2. Здесь тоже сокласен с wildshaman.
3. А зачем такие сложности? Мне кажется это ничего не даст.
|
|
|

30.03.2010, 15:11
|
|
Reservists Of Antichat - Level 6
Регистрация: 25.04.2008
Сообщений: 827
Провел на форуме: 2769640
Репутация:
1304
|
|
Kuzya Если требуется просто добавление строки в конец файла - то не принципиально какой вариант вы выберете.
Причём нельзя сделать так, чтоб лог открывать в начале работы и сохранять только в конце.
И не надо, для сброса кэшированных данных на диск существует fflush();
__________________
Любая действущая программа устарела.
Создайте систему, которой сможет пользоваться даже дурак ,и только дурак захочет ею пользоваться.
Как правильно задавать вопросы: _http://www.yakimchuk.ru/questions.htm
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|