|
|
1
40
初始化需要写入每个字段,这需要大量相对耗时的内存访问。具有
|
|
|
2
29
迄今为止的答案并不能完全解释问题的严重性。 正如sharptooth所指出的,配对解决方案将值初始化为零。正如Lemurik指出的,pair解决方案不仅仅是初始化一个连续的内存块,而是为表中的每个元素调用pair构造函数。然而,即使这样,也不能说明需要1.5秒。还有别的事情正在发生。
假设你在一台古老的机器上,比如说运行在1.33ghz,那么1.5秒就是2e9个时钟周期。您需要构造2e6对,因此每个对构造函数都要花费1000个周期。 调用只将两个整数设置为零的构造函数不需要1000个周期。 我看不出缓存未命中怎么会花那么长时间。如果循环次数少于100次,我会相信。
不管怎么说,这就解释了额外时间的去向。显然,另一个编译器可能没有那么糟糕。当然,一个优化的发布版本也不会如此。 |
|
|
3
3
这些都是很好的猜测,但众所周知,猜测并不可靠。 我会说只是随机的 pause it 在那1.5秒内,但你必须非常快。如果将每个维度增加大约3倍,则可能需要10秒以上的时间,因此暂停会更容易。
无论哪种方式,你都会得到这个问题的确切答案,而不仅仅是猜测。 |
|
|
4
1
|
|
|
5
-1
这是一个很好的例子,一个人应该写C++和使用STL仔细。有什么想法吗? 我的项目是在C&C++代码级基准测试工具,我们将在其中做大量代码样本,找出什么是“好”代码和什么是“坏”编码习惯。看见 http://effodevel.googlecode.com 了解更多关于C9B.M的信息。计划。任何人,如果你经历过很多这样的情况,请加入该项目来帮助我们。 |
|
Sweepy Dodo · JSON lite的格式化 1 年前 |
|
|
giantjenga · 优化整数向量到二进制向量的转换 1 年前 |
|
Zegarek · Postgresql递归查询未提供预期结果 1 年前 |
|
|
Joe · 为什么这两个查询之间的性能存在如此大的差异? 1 年前 |
|
tic-toc-choc · 在`dplyr中高效使用列表进行过滤` 1 年前 |