Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Эффективное(быстрое) логирование в файл
|
|||
|---|---|---|---|
|
#18+
Можно взять за правило flush-ить только важные события (ERROR,FATAL) или события от особого логера. Таковых должно быть (наобум) 1-5% от всех остальных. А остальной трафик ... ну пускай течёт в фоне. По мере возможности. Или взять к примеру ОС. Она вобщем-то не логгирует свои "ядерные" события. И ЕМНИП техподдержка анализирует "посметрные дампы" memory. Это тоже вобщем-то метод. И экономно. И из поля зрения ничто не утекает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2015, 11:33 |
|
||
|
Эффективное(быстрое) логирование в файл
|
|||
|---|---|---|---|
|
#18+
Dima TСогласен, только презумпция невиновности в его пользу.Если есть косяк админа - он должен получать люлей. Чтобы нюх не терял. Именно поэтому админ должен знать больше, чем ему положено по должностным обязанностям.Начнись разбор проблемы на уровне начальства - крайний я.Это вообще не техническая проблема и лично я не вижу смысла обсуждать общие вопросы там, где каждый случай содержит частные ньюансы.Потому что он в штате, а я просто поставщик услуги, обещающий конкретные параметры в договоре.И это то же не техническая проблема. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2015, 13:21 |
|
||
|
Эффективное(быстрое) логирование в файл
|
|||
|---|---|---|---|
|
#18+
maytonИли взять к примеру ОС. Она вобщем-то не логгирует свои "ядерные" события. И ЕМНИП техподдержка анализирует "посметрные дампы" memory. Это тоже вобщем-то метод. И экономно. И из поля зрения ничто не утекает. Чтобы с этих дампов что-то понять надо как минимум асм знать хорошо, инструментарий соответствующий освоить. Совсем не свойственные знания для прикладного программиста. Да и в дампах думаю не все гладко: если компилятор при сборке релиза осмысленные имена функций и переменных выкинул, половину кода заинлайнил, причем там в перемешку и твой код, и STL и т.д. и т.п. Как это читать? ХЗ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2015, 18:54 |
|
||
|
Эффективное(быстрое) логирование в файл
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorov, это крайние случаи. Админы (большинство) адекватные и грамотные. Из частого (опять же в моей практике) не падение, а "зависание". Тот же админ пишет/звонит: "Прога молотит уже 20-30 минут, проц на 100% грузит. Что делать?" Смотрим лог и сразу все понятно: из его системы (где он тоже только админ) вывалилось что-то большое и обрабатывается, тут снять задачу вообще не вариант - обработка начнется с начала. Без flush() запись о том что конкретно обрабатывается висела бы в буфере, а мы бы с админом судорожно гадали что случилось. ИМХУ в этом вопросе нет одного правильного ответа на все случае жизни. Не надо тебе - не пользуй flush(). Если логи не читаешь, то вообще не пиши,так еще эффективнее работать будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2015, 19:12 |
|
||
|
Эффективное(быстрое) логирование в файл
|
|||
|---|---|---|---|
|
#18+
Dima TТот же админ пишет/звонит: "Прога молотит уже 20-30 минут, проц на 100% грузит. Что делать?" Смотрим лог и сразу все понятно: из его системы (где он тоже только админ) вывалилось что-то большое и обрабатываетсяЕсли человек не вчера работает, то он должен знать или, как минимум, представлять что и когда может "свалиться". И потом - что за паника? "А-а-а! Усё пропало! Полчаса стопроцентной загрузки!" - где трагедия? Ну и самое главное: если вы, заглянул в лог, поняли, что происходит, то я вижу только одну причину, по которой этого не понял админ - он вообще не заглядывал в лог.Без flush() запись о том что конкретно обрабатывается висела бы в буфереВремена Windows 9x, которая могла сутками держать данные в буфере - давно прошли. Максимум, который вы получите при отсутствии flush - секунды (десятки секунд) отложенной записи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2015, 08:26 |
|
||
|
Эффективное(быстрое) логирование в файл
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovВремена Windows 9x, которая могла сутками держать данные в буфере - давно прошли. Максимум, который вы получите при отсутствии flush - секунды (десятки секунд) отложенной записи. Тестами не подтверждается. Исходник Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. Компилировал MSVC 2012 Express. Запускал на W7. Пишет ровно по 4096 байт (~40 строчек) каждые 400 секунд. Т.е. по наполнению. Какой-то ИИ не наблюдается. Можно паузу побольше поставить - будет раз в сутки писать. Единственное полезное: при закрытии окна крестиком - скидывает весь буфер. Если с диспетчера снимать задачу - не скидывает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2015, 12:02 |
|
||
|
Эффективное(быстрое) логирование в файл
|
|||
|---|---|---|---|
|
#18+
Вобщем в 99% случаев можно не париться с флашами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2015, 12:20 |
|
||
|
Эффективное(быстрое) логирование в файл
|
|||
|---|---|---|---|
|
#18+
MasterZivalexy_blackты задаешь вопросы, на которые можно ответить только тестами реальной системы. да нет, примерно можно прикинуть и теоретически... ... думаю прикинуть конечно можно, но обычно потом в самом неожиданном месте... это ситв макколен писал, что для хорошей опитимизации, нужно сначала написать простой код, который легко понять, потом взять профайлер, и опитимизировтаь только те методы, на которые он укажет. потому что обычно, если опитимизировать заранее, то оптимизируешь то, что и так работало хорошо. в результате и сам время потерял, и код стал менее читаемым. даже если например снизить время записи в лог, то в последствии может оказаться, что на это приходится только 0.01% верени работы системы. а, скажем, 38% она просиживает в какой-то функции. вот если оптимизировать эту функцию, в которой 38%, то это даст реальный плюс, даже если она от этого станет быстрее очень не на много, суммарный эффект будет больше, чем у лога.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2015, 13:21 |
|
||
|
Эффективное(быстрое) логирование в файл
|
|||
|---|---|---|---|
|
#18+
Dima TBasil A. SidorovВремена Windows 9x, которая могла сутками держать данные в буфере - давно прошли. Максимум, который вы получите при отсутствии flush - секунды (десятки секунд) отложенной записи. Тестами не подтверждается. Код: plaintext 1. Процитированное утверждение - про дисковые буферы ОС, а не про буфер потока, который естественно сам по себе не сбрасывается на диск, потому что это просто участок памяти процесса, и все действия над ним происходят во время операций над потоком, а никак не в фоне. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2015, 13:30 |
|
||
|
Эффективное(быстрое) логирование в файл
|
|||
|---|---|---|---|
|
#18+
Dima TКомпилировал MSVC 2012 Express. Запускал на W7. Пишет ровно по 4096 байт (~40 строчек) каждые 400 секунд. Т.е. по наполнению.Как мониторили? Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2015, 17:51 |
|
||
|
Эффективное(быстрое) логирование в файл
|
|||
|---|---|---|---|
|
#18+
Вот тут по буферизации что-то есть http://stackoverflow.com/questions/12997131/stdfstream-buffering-vs-manual-buffering-why-10x-gain-with-manual-buffering ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2015, 17:56 |
|
||
|
Эффективное(быстрое) логирование в файл
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovDima TКомпилировал MSVC 2012 Express. Запускал на W7. Пишет ровно по 4096 байт (~40 строчек) каждые 400 секунд. Т.е. по наполнению.Как мониторили? Код: plaintext Как обычно, в фаре F3 на файле лога. Можно любую другую смотрелку логов использовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2015, 18:49 |
|
||
|
Эффективное(быстрое) логирование в файл
|
|||
|---|---|---|---|
|
#18+
Для надёжности я-бы сравнил работу просмотрщика FAR с утилитой tail.exe ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2015, 19:32 |
|
||
|
Эффективное(быстрое) логирование в файл
|
|||
|---|---|---|---|
|
#18+
Dima TКак обычно, в фаре F3 на файле лога. Можно любую другую смотрелку логов использовать.Могу и ошибаться, но если "смотрелка логов" использует Directory Change Notifications , то ваш пример проходит по сценарию "данные пишутся, но метаданные (каталожные записи) не обновляются". Проверяется тем самым "type > nul". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2015, 20:35 |
|
||
|
Эффективное(быстрое) логирование в файл
|
|||
|---|---|---|---|
|
#18+
Кстати поведение Far при переходе от Win2003 к Windows7 изменилось в части наблюдения за directory list. В старой версии размеры файлов обновлялись динамически (очевидно по нотификациям от directory change). В семёрке эти нотификации толи исчезли совмем толи стали отложенные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2015, 01:05 |
|
||
|
Эффективное(быстрое) логирование в файл
|
|||
|---|---|---|---|
|
#18+
Я не настаиваю на фаре. Просто я привык смотреть логи фаром и он показывает сразу после появления записи на диске. Можно брать любой другой инструмент вызывающий доверие. Например Код: plaintext 1. а дальше давим в консоли кнопки: стрелка вверх, enter. С любой частотой, какая нравится. Тут 100% полное перечитывание файла, все что есть на диске в момент запуска, без всяких оптимизаций с использованием Notifications Результат тот же самый. Пишет ровно по 4096 байт (~40 строчек) каждые 400 секунд. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2015, 07:14 |
|
||
|
Эффективное(быстрое) логирование в файл
|
|||
|---|---|---|---|
|
#18+
Тогда остаются грабли реализации стандартной библиотеки, по которым разработчики ОС уже потоптались пятнадцать назад. Если реализация "оптимизирует" число (системных) вызовов write() - это её проблемы. Навешивать костыль в виде flush() - именно, что навешивать костыль. P.S. Разумеется, могут быть и ньюансы с 512e (эмуляция 512-байтовых секторов поверх 4КБайт физических), но принудительный сброс в лог каждой строчки - был и остаётся костылём. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2015, 10:36 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=39123073&tid=2018698]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
155ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 289ms |
| total: | 528ms |

| 0 / 0 |
