问题标签 [micro-optimization]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
13 回答
167746 浏览

java - 如果性能很重要,我应该使用 Java 的 String.format() 吗?

我们必须一直为日志输出等构建字符串。在 JDK 版本中,我们了解了何时使用StringBuffer(许多附加,线程安全)和StringBuilder(许多附加,非线程安全)。

使用上有什么建议String.format()?它是有效的,还是我们被迫坚持对性能很重要的单行代码进行串联?

例如丑陋的旧风格,

与整洁的新样式(String.format,可能更慢)相比,

注意:我的具体用例是贯穿我的代码的数百个“单行”日志字符串。它们不涉及循环,所以StringBuilder太重了。我String.format()特别感兴趣。

0 投票
4 回答
3283 浏览

css - CSS的速度

这只是一个帮助我更好地理解 CSS 渲染的问题。

假设我们有一百万行。

将 Hello World 的字体更改为红色的最快方法是什么?

此外,如果中间的 at 标记具有唯一 id 为“foo”怎么办。上面哪一种 CSS 方法最快。

我知道为什么要使用这些方法等,我只是想更好地掌握浏览器的渲染技术,我不知道如何进行测试。

更新:很好的答案秋葵。从外观上看,在常规站点中进行标记的完整定义会更快。因为它找到了父母并缩小了对找到的每个父母的搜索范围。

从某种意义上说,这可能很糟糕,尽管您将拥有一个相当大的 CSS 文件。

0 投票
7 回答
1353 浏览

c++ - 负整数的 C++ 优化

假设我们有一个负整数,比如 int a;

-a 有更快的实现吗?

我必须对此进行一些按位运算吗?

0 投票
3 回答
13147 浏览

c - 在 C 数组中进行按位运算的最有效方法是什么

我有一个 C 数组,如:

另一个充当面具的角色:

我想在每个字节上使用按位运算得到另一个数组,该数组是第一个数组加上第二个数组的结果。

最有效的方法是什么?

谢谢你的回答。

0 投票
12 回答
13748 浏览

c - 优化二分查找算法

在二分查找中,我们有两个比较,一个是大于,另一个是小于,否则是中间值。您将如何优化以便我们只需要检查一次?

0 投票
13 回答
1381 浏览

c++ - 重新安排条件评估会加速循环吗?

有点奇怪:一位朋友不久前告诉我,重新排列这个示例for循环:

到:

会略微提高 C++ 的性能。我看不出将常量值与变量进行比较比反之亦然更快,而且我运行的一些基本测试没有显示两种实现之间的速度有任何差异。测试这个 Pythonwhile循环也是如此:

与:

我错了吗?我的简单测试不足以确定速度变化吗?其他语言也是这样吗?或者这只是一个新的最佳实践?

0 投票
3 回答
403 浏览

c# - 很有趣,这可能是堆栈溢出问题

以下过程(解释如下)适用于非常小的列表,但是当列表包含大量项目(1/2 百万)时,应用程序进入“无响应”状态,大约需要 2.5 分钟才能完成(非常糟糕时间)。我可能会添加应用程序需要处理至少 1 亿个项目的列表(最终)。

这是有问题的过程的代码:

L 是一个长值列表。_subLists 是一个排序列表,其中每个值都是来自 L 的值的列表,开始一些差异(不相关)的算术级数系列。与该值关联的键是值包含的系列的长度。

例子:

L = {1,2,3,5,6,7,18,20,21} _subLists = {2,<20>} {3,<1,5>}

该过程只是从 L 中删除算术级数系列。

0 投票
9 回答
594 浏览

c - n = 0 和 n = n - n 之间的差异

当我读到这个问题时,我记得有人曾经(多年前)告诉我,从汇编程序的角度来看,这两个操作非常不同:

这是真的吗?如果是,为什么会这样?

编辑:正如一些回复所指出的,我想这对于编译器来说很容易优化成同样的东西。但我发现有趣的是,如果编译器有一个完全通用的方法,为什么它们会有所不同。

0 投票
2 回答
18222 浏览

php - array_push() 与 $array[] = .... 哪个最快?

我需要将从 MySQL 接收到的值添加到数组 (PHP) 中。这是我所拥有的:

这是唯一的方法吗?

另外,以下是否更快/更好?

0 投票
4 回答
2197 浏览

php - PHP switch 语句中 case 的顺序是否重要?

在 PHPswitch语句中,将更常见的情况放在顶部附近是否会提高性能?

例如,假设以下函数被调用 1,000 次:

如果在 1,000 次中,有 990 次调用该函数,$op 参数是“登录”,那么在语句中添加case: 'login'上述参数会提高性能吗?例如,如果通过,后面的代码会被忽略吗?case 'after_update':switchcase 'after_update':$op = login

我已经对这个想法进行了一些非正式的测试,但差异可以忽略不计——可能是因为后面的代码case: 'login'和代码case 'after_update':都很简单。如果有人完全知道答案,我宁愿避免使用非平凡的操作设置更广泛的测试。

这特别是一个 Drupal 问题,但我想任何熟悉优化 PHP 的人都可以解决这个问题。