416得票22回答
将整数除以2,哪种选项更好?

以下哪种技术是将整数除以2的最佳选项,为什么? 技术1:x = x >> 1; 技巧2:x = x / 2; 这里的x是一个整数。

247得票13回答
如果性能很重要,我应该使用Java的String.format()吗?

我们经常需要构建字符串以用于日志输出等。随着JDK的不断更新,我们学会了在什么情况下使用 StringBuffer(多次追加,线程安全)和 StringBuilder(多次追加,非线程安全)。 那么使用 String.format() 的建议是什么?它是否有效率,或者我们被迫在性能重要的单行...

186得票1回答
在x86汇编中,将寄存器置零的最佳方式是什么:xor、mov还是and?

以下所有指令均执行相同的操作:将 %eax 设置为零。哪种方式最优(需要最少的机器周期)?xorl %eax, %eax mov $0, %eax andl $0, %eax

142得票5回答
Python中异常处理的成本

在另一个问题中,被采纳的答案建议用try/except块代替Python代码中的一个(非常简单)if语句以提高性能。 除了编码风格问题以外,并假设异常永远不会触发,相比于没有异常处理程序和使用0比较的if语句,在性能方面使用异常处理程序有多少差异?

110得票9回答
何时,如果有必要的话,循环展开仍然是有用的?

我一直在尝试通过循环展开来优化一些极其性能关键的代码(一个快速排序算法,在蒙特卡罗模拟中被调用数百万次)。这里是我试图加速的内部循环:// Search for elements to swap. while(myArray[++index1] < pivot) {} while(piv...

108得票4回答
什么更快:in_array 还是 isset?

这个问题只是为了我自己,因为我总是喜欢编写可以在廉价慢速服务器上运行(或者在流量很大的服务器上运行)的优化代码。 我找了一圈,但没有找到答案。我想知道在这两个示例中哪一个更快,同时要记住,在我的情况下,数组键不重要(伪代码自然):<?php $a = array(); while($ne...

106得票7回答
浮点数除法与浮点数乘法

编码时是否有任何(非微观优化)性能提升?float f1 = 200f / 2 相比之下float f2 = 200f * 0.5 我的一位教授几年前告诉我,浮点数除法比浮点数乘法慢,但没有解释为什么。 在现代PC架构中,这种说法是否成立? 更新1 针对评论,请也考虑以下情况:float...

105得票3回答
为什么我的应用程序在执行null检查时要花费24%的时间?

我有一个性能关键的二叉决策树,我想把这个问题集中在一行代码上。以下是二叉树迭代器的代码以及对其运行性能分析的结果。 public ScTreeNode GetNodeForState(int rootIndex, float[] inputs) { 0.2% ...

87得票3回答
为什么GCC不能为两个int32s的结构体生成最优的operator==操作符?

我的同事给我展示了一段代码,我认为这段代码不必要,但是实际上它非常重要。我预期大多数编译器会将下面三种尝试判断相等性的方式视为相等: #include <cstdint> #include <cstring> struct Point { std::int3...

85得票8回答
从Java字符串中剥离所有不可打印字符的最快方法

什么是在Java中从字符串中剥离所有不可打印字符的最快方法? 到目前为止,我已经尝试并测量了一个138字节、131个字符的字符串: replaceAll() 方法是 String 类中最慢的方法 每秒517009个结果 预编译 Pattern,然后使用 Matcher 的 repla...