1
6
我将从您的第二个问题开始,我想同意剩下的问题,即StringBuilder和String在很大程度上依赖于特定的字符串操作。我做过一次“基准测试”,一般来说,当新的字符串分配量增加(通常以串联的形式)时,总的执行时间就增加了。我不会详细说明,只是说,与string、stringbuffer、string.format()和messageformat相比,stringbuilder是最有效的超时工作。 我的经验法则是,每当我想将3个以上的字符串连接在一起时,总是使用StringBuilder。 关于你的第一个问题。我们要求将CPU使用率提高到5%。这任务不容易。我们使用Spring的AOP机制在CPU密集型方法的任何方法执行之前添加一个thread.sleep()。只有在超过某个限制时,才会调用thread.sleep()。很抱歉,这个极限的计算并不是那么简单。更可悲的是,我还没有得到允许将它发布到网上。所以这只是为了让你进入一个有趣但复杂的轨道,随着时间的推移,这已经被证明是可行的。 |
2
7
很多关于“民间智慧”的
对此:
可能不会再快了
. 这是因为Java编译器实际上将级联序列转换为一个等价的附加序列到一个临时StringBuilder。除非在循环中连接字符串,否则最好只使用
另一个需要指出的问题是,您应该使用一个分析器来识别代码中可以从工作中获益的地方,从而提高性能。大多数开发人员对于什么值得优化的直觉并不那么可靠。 |
3
4
这些网站多久更新一次?你可能真的很烦主人。只要坚持
|
4
2
让它等一段时间再开火,就像这样:
至于第二个问题,它也将减少内存和可能的CPU使用量,但收益实际上取决于这些字符串的情况。 |
5
2
睡眠会降低CPU使用率。对于StringBuilder,它们可以降低内存使用率并提高性能。 |
6
0
你也可以试试
|
7
0
如果他们的代码在一个单独的JVM中,并且运行在Linux或其他一些UNIX上,则需要他们在nice 20上运行他们的程序。 或者您可以让它们在虚拟机(如virtualbox)中运行,并使用它来限制处理器利用率。
或者,如果它们继续这样的燃烧循环,而不是使用事件驱动的模型,或者
|
8
0
不要假定代码中看到的某些内容对性能来说是坏的(或好的)。性能问题是众所周知的欺骗性问题。 |
9
0
|
S. Jacson · 任意两台发电机的速度差(内置功能) 2 年前 |
Sadeq Dousti · 相当于“嵌套删除”的执行性能SQL查询 2 年前 |
Prince · 复制大型文件需要更多时间 2 年前 |
Sagar · 为什么在循环之外声明变量会更快? 2 年前 |
seco · 如何在不挂起页面的情况下加载JS 2 年前 |