2024 Clojure状态调查!中分享您的想法。

欢迎!请查看关于页面以获取有关如何使用此网站的更多信息。

0
data.fressian

问题
JVM分析器表明当前实现的校验和是一个显著的瓶颈。

原因
impl.RawOutput使用CheckedOutputStream包装提供的OutputStream。每次写入rawInt时,CheckedOutputStream都会对其校验和进行更新。

Adler32的update方法恰好是本地的,可能与此问题无关。
http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/util/zip/Adler32.java#91

data.fressian的读取端已经公开了一个用于在RawInput中忽略校验的旋钮。写入端不存在这样的旋钮。

校验和用于废页方法。它们对于静态数据可能非常有用,但可能与其他带外机制重复。

可能的解决方案
缓冲,以便校验和不频繁地重新计算。
公开一个旋钮来控制是否启用写入校验和。这可能导致废页的更改。

2个答案

0

评论由:stu

校验和计算可能确实会影响性能。(如果是这样,另一种可能的解决方案是彻底从Fressian中删除校验和。)

话虽如此,我不想相信分析器。为了推动这件事的发展,我想看到没有分析器参与的实际用例基准测试。

0
参考:https://clojure.atlassian.net/browse/DFRS-2(由gshayban报告)
...