Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java优化_Java_Optimization - Fatal编程技术网

Java优化

Java优化,java,optimization,Java,Optimization,我经常在使用中看到许多Java编程实践,它们可以进行优化以提供显著的加速 示例:对于字符串上的大量+操作,请改用StringBuilder 您可以进行哪些简单、有用的优化来显著提高程序的性能 编辑:我不是在寻找微不足道的过早优化。我无意提出这个问题。相反,我想学习一些常见的构造/错误,它们确实会对性能造成重大影响 至少要多花一个数量级的时间认真思考问题的最有效算法和数据结构,就像思考如何微观优化特定操作符、控制流结构等一样。 见1 你可以做很多小事情来优化你的程序。所以这个问题没有真正的答案。你

我经常在使用中看到许多Java编程实践,它们可以进行优化以提供显著的加速

示例:对于字符串上的大量+操作,请改用StringBuilder

您可以进行哪些简单、有用的优化来显著提高程序的性能

编辑:我不是在寻找微不足道的过早优化。我无意提出这个问题。相反,我想学习一些常见的构造/错误,它们确实会对性能造成重大影响

至少要多花一个数量级的时间认真思考问题的最有效算法和数据结构,就像思考如何微观优化特定操作符、控制流结构等一样。 见1
你可以做很多小事情来优化你的程序。所以这个问题没有真正的答案。你的例子是一个过早的优化。当使用+运算符添加字符串时,Java 5和6中的编译器将自动使用StringBuilder@Goran Jovic:只有在一条语句中使用+,这才是正确的。如果在循环中进行连接,StringBuilder的速度明显更快,而且肯定不会过早进行优化。@tskuzzy:不,这也包括循环。若所有的加号都在一个语句中,所有的参数都是字符串文字,那个么编译器应该更进一步,用一个字符串对象替换整个表达式。我不明白为什么会关闭它。我在问这个问题时寻找具体的事实。我花了数年时间研究算法/数据结构。但一个好算法的糟糕实现也不好。如果你对算法/数据结构了解得足够多,你只能同意我的建议。如果你的建议确实100%正确,你不必花时间来打这个问题,相反,你最好花时间读一本算法书。这有几个问题:A我不是在问关于优化的问题,因为,如果你读我的帖子,你会看到我明确地关闭了优化;相反,这是一个关于编译器是如何生成代码的问题,而公认的答案反映了b即使在我看来这确实代表了不一致或矛盾,但它并没有说明这个建议的有效性;换句话说,tu quoque的论点是错误的。为什么我们使用缓冲输入/输出?为什么我们支持SIMD指令?人们为什么超频?这些都是与人们使用的数量级相同的小优化,因为它们可以并导致显著的性能差异。总有一天,算法不再是程序的瓶颈。