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的读取端已经公开了一个可以忽略校验庙的旋钮。在写入端没有这样的旋钮。

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

可能的解决方案
缓冲以便校验和不会频繁计算。
公开一个旋钮以控制是否启用写入校验和。这可能涉及到对页脚的更改。

2个回答

0

评论由:stu发布

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

但说得话,我不想相信分析器。为了推动这一进展,我希望看到没有分析器参与的现实用例的基准测试。

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