2012-04-01 3 views

ответ

1

Я не уверен, что вы подразумеваете под «файлами с памятью» или что именно вы пытаетесь выполнить.

Но одним из способов может быть запись ваших журналов на RAM-диск. Например:

http://www.ubuntuka.com/ubuntu-ramdisk-ramdrive-easy-way/

+0

Я говорю о java.nio.MappedByteBuffer от Java NIO. – chrisapotek

1

SLF4J не является библиотекой регистрации. Это фасад для реальной библиотеки/системы регистрации, которую вы используете. Таким образом, вопрос задан для slf4j.

Log4j не предоставляет реализацию Appender, которая указана как использующая файлы с отображением памяти. Это может сделать под капотом. Вам нужно будет проверить исходный код.

То же самое относится к журналу.


AFAIK, то ничто не мешает вам писать свой собственный Appender для Log4j или Logback, который использовал отображенный файл. Было бы интересно узнать, есть ли какие-либо преимущества в производительности при этом. (Мое предположение - нет. Картирование памяти действительно имеет смысл для чтения и чтения/записи файлов. Файл журнала записывается только с точки зрения приложения.)

+0

Коэффициент усиления производительности при использовании файлов с памятью близок к 5 раз. Я сам их измерял на Linux и Mac. – chrisapotek

+0

@chrisapotek - вы измерили его для записи файла журнала? Или что-то еще? Просьба представить контрольный код, который мы можем подтвердить ваш результат. (Мне это кажется неправдоподобным.) –

+0

Вам придется доверять мне это. Большим преимуществом файлов с отображением памяти является то, что вам не нужно делать системный вызов fileChannel.write для каждого отдельного сообщения, которое вы хотите регистрировать. Вы просто пишете MappedByteBuffer в памяти, и ОС отвечает за сохранение данных, когда и как он хочет. В результате выигрыш в производительности огромен. Если ты не веришь мне, это нормально. :) Но спасибо за ответ на log4j и logback. Я удивлен, что эти две популярные библиотеки не поддерживают файлы с отображением памяти – chrisapotek

1

Я внесла appender в Log4j 2, который записывает в сопоставленные файлы.

Смежные вопросы