gpt4 book ai didi

Java 编译器不会自动优化字符串连接?

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

以下Jsoup code 连接容器 els 中所有元素的文本:

for (Element el : els)
entireText += el.text();

在一个包含约 64 个元素的容器中,每个元素包含约 1KB(整个文本中的总和为约 64KB),这个简单的循环在典型的低端 Android 手机上大约需要 8 秒

这种缓慢的性能有点让我吃惊,因为我的印象是 Java 编译器用 new StringBuilder(A).append(B).append 替换了像 A + B + C 这样的表达式(C).toString().

不是这样吗?

我错过了什么?

最佳答案

This slow performance kind of surprises me because I was under the impression that Java compilers substitute expressions like A + B + C with new StringBuilder(A).append(B).append(C).toString().

因此编译器创建代码:

for (Element el : els)
entireText = new StringBuilder(entireText).append(el.text()).toString();

您需要在循环外创建 StringBuilder 并手动附加到它。

关于Java 编译器不会自动优化字符串连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11311234/

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