以下Jsoup代码将合并
在一个包含大约64个元素的容器中,每个元素包含大约1KB(总共为64KB),这个简单的循环在一般低端Android手机上需要大约8秒。
这种缓慢的性能让我有些惊讶,因为我认为Java编译器会用
难道不是这样吗?
我漏掉了什么?
els
容器中所有元素的文本:for (Element el : els)
entireText += el.text();
在一个包含大约64个元素的容器中,每个元素包含大约1KB(总共为64KB),这个简单的循环在一般低端Android手机上需要大约8秒。
这种缓慢的性能让我有些惊讶,因为我认为Java编译器会用
new StringBuilder(A).append(B).append(C).toString()
这样的表达式替换A + B + C
。难道不是这样吗?
我漏掉了什么?
javac
编译器几乎不进行任何优化。即使使用JIT,它也不会对这段代码进行太多优化。开发人员需要知道这是非常低效的。 - Peter Lawrey