第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何為自定義日志記錄解決方案正確創(chuàng)建性能測(cè)試?

如何為自定義日志記錄解決方案正確創(chuàng)建性能測(cè)試?

溫溫醬 2024-01-17 21:03:29
在工作中,我主動(dòng)從頭開始創(chuàng)建一個(gè)日志庫(kù),以便在內(nèi)部服務(wù)和項(xiàng)目中使用。迄今為止,我已經(jīng)使用自定義類創(chuàng)建了概念證明,該自定義類extends PatternLayout混淆了輸出日志條目中的某些字段?,F(xiàn)在的主要任務(wù)是斷言性能是可以接受的,并且我的解決方案可以處理數(shù)百萬(wàn)個(gè)日志條目而不會(huì)丟失消息。我決定為我的自定義 logback、默認(rèn) logback 布局和 Log4j2 編寫性能測(cè)試,以便比較輸出結(jié)果。我已經(jīng)使用jmh.<?xml version="1.0" encoding="UTF-8"?><configuration>    <appender name="FILE_APPLY_RULES" class="ch.qos.logback.core.FileAppender">        <file>logs\log.txt</file>        <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">            <layout class="com.ingenico.epayments.logging.rule.LoggingRulesApplicator">                <pattern>%msg%n</pattern>                <applyRules>true</applyRules>                <loggingRules>src/test/resources/logging-rules.json</loggingRules>            </layout>        </encoder>    </appender>    <appender name="ASYNC_FILE_APPLY_RULES" class="ch.qos.logback.classic.AsyncAppender">        <discardingThreshold>0</discardingThreshold>        <appender-ref ref="FILE_APPLY_RULES" />        <queueSize>256</queueSize>        <includeCallerData>false</includeCallerData>        <neverBlock>true</neverBlock>    </appender>    <root level="INFO">        <appender-ref ref="ASYNC_FILE_APPLY_RULES" />    </root></configuration>@Slf4jpublic class LogbackTest {    @Test    public void launchBenchmark() throws RunnerException {        Options opt = new OptionsBuilder()                .include(this.getClass().getName() + ".*")                .timeUnit(TimeUnit.MICROSECONDS)                .warmupTime(TimeValue.seconds(1))                .warmupIterations(2)                .measurementTime(TimeValue.seconds(1))                .measurementIterations(2)                .threads(2)                .forks(1)                .shouldFailOnError(true)                .shouldDoGC(true)                .addProfiler(StackProfiler.class)                .addProfiler(HotspotRuntimeProfiler.class)                .build();        new Runner(opt).run();    }測(cè)試已運(yùn)行,在輸出中,我看到很多結(jié)果數(shù)字,但我不知道應(yīng)該比較哪些值,以及如何斷言如果我有良好的性能結(jié)果,這不是因?yàn)橄⒁驯粊G棄?您能給我一些如何準(zhǔn)備有效的性能測(cè)試的提示嗎?
查看完整描述

1 回答

?
小唯快跑啊

TA貢獻(xiàn)1863條經(jīng)驗(yàn) 獲得超2個(gè)贊

您有一個(gè)異步AsyncAppender附加程序,它可能會(huì)刪除隊(duì)列中的消息。同時(shí),JMH 基準(zhǔn)測(cè)試期望@Benchmark帶注釋的方法中的代碼同步執(zhí)行,以計(jì)算需要多長(zhǎng)時(shí)間。這行不通。

在我看來(lái),您試圖一次測(cè)試太多的東西,例如整個(gè) Logback 堆棧。如果您開發(fā)了自定義布局類,LoggingRulesApplicator請(qǐng)先為該類編寫 JMH 基準(zhǔn)測(cè)試。

查看現(xiàn)有的 log4j2 JMH 基準(zhǔn)測(cè)試。通過(guò)使用 NOOP 附加程序可以簡(jiǎn)化設(shè)置,您可能也應(yīng)該擁有它。


查看完整回答
反對(duì) 回復(fù) 2024-01-17
  • 1 回答
  • 0 關(guān)注
  • 187 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)