这个不是commit还是不commit的问题
commit只是说,保证这块内存地址能用,不会冲突,但是并不代表地址的内容会进cpu缓存。
你现在观察到的现象是:如果object的内存被访问过一次(你的例子里是用assignment操作),那么后访问都会很快。这个我敢说,是cpu cache和内存之间同步的事
你可以把ctor改成
R3(double x, double y, double z)
{
x = m_data[0], y = m_data[1], z = m_data[2];
}
只要这行不被优化掉,保证m_data都被cpu过了一遍读到cache里,后面的访问应该也是一样快
【 在 xieyf 的大作中提到: 】
: 我现在怀疑new出来的内存是没有commit的。
: 访问一遍后, vv中所有内容都是commited, 所以访问起来就快了。
: 这只是一种猜测.
: ...................
--
FROM 122.224.174.*