- 主题:求教一个C++数组赋值的效率问题
好的,大概明白了,我再查查。谢谢你!
【 在 bihai 的大作中提到: 】
: 你想问的问题是为什么会有几个是接近毫秒吗?只要每次运行不是同一个位置,你看一下有多少个。大概是系统进行了调度,干别的去了。
:
: 【 在 xueyandy 的大作中提到: 】
: ....................
- 来自「最水木 for iPhone13,2」
--
FROM 36.112.195.*
兄弟 没你这么干的
你拿一把精度是一米的尺子量一毫米的东西,然后问为什么一会结果是0米,一会结果是1米?
【 在 xueyandy 的大作中提到: 】
: \- 来自「最水木 for iPhone13,2」
: --
: [upload][/upload]
: [upload][/upload]
: [upload][/upload]
: [upload][/upload]
: [upload][/upload]
发自「今日水木 on 鸿蒙」
--
FROM 107.77.212.*
好的,明白了,谢谢啦!
【 在 adu 的大作中提到: 】
: 兄弟 没你这么干的
:
: 你拿一把精度是一米的尺子量一毫米的东西,然后问为什么一会结果是0米,一会结果是1米?
: ....................
- 来自「最水木 for iPhone13,2」
--
FROM 36.112.195.*
性能测试不是单条指令就打点测试,而是同样的指令运行很多次比如10万次,测试这10万次的总时间, 一般总时间至少要到几十毫秒。
具体如何设计测试代码,你可以在研究,但要防止编译器优化掉你的代码。
代码级别的性能测试也是很有学问的。
【 在 xueyandy 的大作中提到: 】
: 【 在 foliver 的大作中提到: 】
: : 贴代码。
: :
: ...................
--来自微水木3.5.11
--
FROM 39.144.43.*
了解了,您的回答很专业,非常感谢!
【 在 foliver 的大作中提到: 】
: 性能测试不是单条指令就打点测试,而是同样的指令运行很多次比如10万次,测试这10万次的总时间, 一般总时间至少要到几十毫秒。
:
: 具体如何设计测试代码,你可以在研究,但要防止编译器优化掉你的代码。
: ....................
- 来自「最水木 for iPhone13,2」
--
FROM 36.112.181.*
觉得是优化问题,看汇编代码啊
上面不是有大佬提示放到godbolt上吗?那个网站是可以看生成的汇编的
昨天我看过了,你上面贴的那代码是自己手打的吧,很多中文全角字符。。。
--
修改:z16166 FROM 125.35.121.*
FROM 125.35.121.*
是的,手机打的,哈哈
【 在 z16166 的大作中提到: 】
: 觉得是优化问题,看汇编代码啊
:
: 上面不是有大佬提示放到godbolt上吗?那个网站是可以看生成的汇编的
: ....................
- 来自「最水木 for iPhone13,2」
--
FROM 36.112.181.*
我也觉得是page fault
--
FROM 114.242.206.*
是不是page fault 很容易确定。
先给D[1000000]赋值, 再给D[1000001]赋值,看D[1000001]消耗的时间即可。
--
FROM 222.126.162.*
c++数组不是编译时分配空间吗?
【 在 xueyandy 的大作中提到: 】
: 比如有一个长度为200万的double数组D,给D[0]赋值的时候很快(估计不到1微秒),但是给D[1000000]赋值的时候明显变慢了,需要近1毫秒。为什么会有这种情况?如何优化呢?
: 谢谢!
: 又试了一下,发现并不完全是因为索引大所以耗时长,而是会跳变,具体请看我后面附的图
: ...................
--
FROM 221.218.136.*