LINUX.ORG.RU

Эффективное журналирование в многопоточных приложениях с использованием кольцевого буфера

 , system_p,


1

3

Не существует программ без ошибок, и пользователи приложений могут столкнуться с неожиданными результатами в процессе выполнения программы. Чтобы проанализировать и найти причины проблем, программисты широко используют журналирование. Из этой статьи вы узнаете, как использовать кольцевой буфер для эффективного журналирования в память вместо записи в файл. Выбор соответствующего размера для буфера гарантирует, что важные сообщения были сохранены и их можно будет использовать при отладке.

>>> Подробности

Ответ на: комментарий от alx_me

> Это всего-навсего обозначает что у ваших разработчиков не все дома. Тестики погоняйте, быстрее UNIX stream сокетов ничего нет.

Экхм, ну это учебное задание, было нестерпимое желание добавить IPC, отличный от сокетов, поскольку они там уже есть сетевые.

sv75 ★★★★★
()
Ответ на: комментарий от alx_me

>Потом можно добавить при остановке системы сброс накопленного на винт/флеш.

То есть при нажатии на ресет или ребоот?

Napilnik ★★★★★
()
Ответ на: комментарий от alx_me

unit-тесты - рулят.

И не на Це++, а на яве-какаве.

Все так живут и про ringbuffer - давно и очень успешно забыли (забили).

de_simakov
()

Статья прикольная :)

ux
()
Ответ на: комментарий от sv75

> 2. Если используется буфер без синхронизации на каждый чих, то к дополнении к искомым гонкам добавятся проблемы с кривой реализации буфера.

Вот тут надо поспорить.

Можно например резать отладочные строки на двухбайтовые кусочки и добавлять 2 байта «номера» строки. Дальше пихаем это в буфер методом CAS, если CAS обламывается — инкрементируем пойнтер на какое-то не слишком большое случайное число.

После смерти расшифровываем.

З.Ы. статью не читал.

www_linux_org_ru ★★★★★
()

Что это за лажа? syslog отменили, что ли?

anonymous
()
Ответ на: комментарий от true_admin

>logrotate спасёт их. Шутка

Все syslog'ам, которым нужен logrotate, давно пора закопать.

anonymous
()
Ответ на: анонимусы от anonymous

>Потому что отродясь ничего с тредами на С не дебагерели, когда оно раз в полчаса примерно падает

А потому что быдлокод не надо писать. Раз уж есть общий ресурс - то и прицепи к нему мютекс, а лучше рвлок и заверни в класс (и нефиг жопу морщить «плюсы, кресты, бла-бла-бла»). А если уж падает - так корки никто не отменял, да. А то разбирал несколько лет назад поделку одного долбоящера - так тот про синхронизацию доступа и не слышал никогда, вместо автомата у него - корявый набор битиков, несколько тредов постоянно читают GPIO в non-blocking режиме, а на закуску - постоянно создается сокет, туда кидается байтик, ждется байтик в ответ, и сокет закрывается. Потом такие удивляются, почему это у них все тормозит и глючит. А секрет прост - сбой при репликации ДНК.

anonymous
()
Ответ на: комментарий от user_id_68054

>ведь нада же обязательно кушать кактус (нити) , а оно вот так скверно работает

Оно скверно работает только у ламеров. Ибо не ведают, что творят.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.