gpt4 book ai didi

java - 将 Guava.Preconditions 与串联字符串一起使用时是否会对性能产生影响?

转载 作者:搜寻专家 更新时间:2023-11-01 02:05:59 24 4
gpt4 key购买 nike

在我们的代码中,我们经常使用Preconditions 检查参数:

Preconditions.checkArgument(expression, "1" + var + "3");

但有时,这段代码会被非常频繁地调用。这会对性能产生显着的负面影响吗?我们应该切换到

Preconditions.checkArgument(expression, "%s%s%s", 1, var, 3);

?

(我希望大多数时候条件为真。假意味着错误。)

最佳答案

如果您希望检查大多数时候不会抛出任何异常,则没有理由使用字符串连接。在调用方法之前进行连接(使用 .concatStringBuilder)比在确定会抛出异常后再进行连接要花费更多的时间。

相反,如果您抛出异常,则说明您已经处于慢速 分支。

还值得一提的是,Guava 使用自定义且更快的格式化程序,它只接受 %s。所以时间损失实际上更类似于标准记录器 {} 句柄(在 slf4j 或 log4j 2 中)。但如上所述,这是在您已经处于慢速分支的情况下。

无论如何,我强烈反对您的任何建议,但我会改用这个建议:

Preconditions.checkArgument(expression, "1%s3", var);

您应该只将变量放在 %s 中,而不是常量以获得边际速度。

关于java - 将 Guava.Preconditions 与串联字符串一起使用时是否会对性能产生影响?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33118919/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com