【问题标题】:Stanford CoreNLP Server disable logging斯坦福 CoreNLP 服务器禁用日志记录
【发布时间】:2016-05-27 12:27:55
【问题描述】:

我感觉服务器的日志记录非常详尽。有没有办法禁用或减少日志输出?似乎如果我将文档发送到服务器,它会将内容写入stdout,这可能是性能杀手。

我可以这样做吗?


更新

我找到了一种抑制服务器输出的方法。我的问题仍然是如何以及是否可以使用实际服务器的命令行参数来做到这一点。然而,对于一个肮脏的解决方法,似乎以下可以减轻开销。

运行服务器

java -mx6g -cp "*" edu.stanford.nlp.pipeline.StanfordCoreNLPServer -prettyPrint false 2&>1 >/dev/null

>/dev/null 将输出管道化为空。不幸的是,仅此一项并没有帮助。 2&>1 似乎在这里解决了问题。我承认我不知道它实际上在做什么。但是,我比较了两次运行。

使用 2&>1 运行 >/dev/null

Processed 100 sentences
Overall time:      2.1797 sec 
Time per sentence: 0.0218 sec 
Processed 200 sentences
Overall time:      6.5694 sec 
Time per sentence: 0.0328 sec 
...
Processed 1300 sentences
Overall time:      30.482 sec 
Time per sentence: 0.0234 sec 
Processed 1400 sentences
Overall time:      32.848 sec 
Time per sentence: 0.0235 sec 
Processed 1500 sentences
Overall time:      35.0417 sec 
Time per sentence: 0.0234 sec 

在没有额外参数的情况下运行

ParagraphVectorTrainer - Epoch 1 of 6
Processed 100 sentences
Overall time:      2.9826 sec 
Time per sentence: 0.0298 sec 
Processed 200 sentences
Overall time:      5.5169 sec 
Time per sentence: 0.0276 sec 
...
Processed 1300 sentences
Overall time:      54.256 sec 
Time per sentence: 0.0417 sec 
Processed 1400 sentences
Overall time:      59.4675 sec 
Time per sentence: 0.0425 sec 
Processed 1500 sentences
Overall time:      64.0688 sec 
Time per sentence: 0.0427 sec 

这是一个非常肤浅的测试,但似乎会产生相当大的影响。这里的差异是 1.828 倍,随着时间的推移,差异很大。

但是,这只是一个快速测试,我不能保证我的结果是完全正确的!

进一步更新:

我认为这与 JVM 如何随着时间的推移优化代码有关,但每个句子的时间与我在本地机器上的时间相当。请记住,我使用2&>1 >/dev/null 消除了stdout 日志记录,得到了以下结果。

Processed 68500 sentences
Overall time:      806.644 sec 
Time per sentence: 0.0118 sec 
Processed 68600 sentences
Overall time:      808.2679 sec 
Time per sentence: 0.0118 sec 
Processed 68700 sentences
Overall time:      809.9669 sec 
Time per sentence: 0.0118 sec 

【问题讨论】:

    标签: stanford-nlp corenlp-server stanford-nlp-server


    【解决方案1】:

    您现在是第三个被要求这样做的人 :) -- Preventing Stanford Core NLP Server from outputting the text it receives 。在 GitHub 存储库的 HEAD 以及 3.6.1 及更高版本中,有一个 -quiet 标志可防止服务器输出它接收到的文本。然后可以使用 SLF4J 配置其他日志记录,如果它在您的类路径中。

    【讨论】:

    • 并让它更加静音 - 尝试添加 -Dorg.slf4j.simpleLogger.defaultLogLevel=WARN 作为 jvm 参数
    猜你喜欢
    • 2017-06-05
    • 1970-01-01
    • 1970-01-01
    • 2019-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多