一个弱值的问题,读的成本比写低多少?
資深大佬 : 786375312123 0
RT 以前上大学学过汇编,可是好久不用记不清楚了。而且那个时候也没讨论过成本问题。
比如说很简单的 c++代码
a > 0 和 a = 12
前一句的成本能比后一句低多少?底在哪了?
大佬有話說 (9)
RT 以前上大学学过汇编,可是好久不用记不清楚了。而且那个时候也没讨论过成本问题。
比如说很简单的 c++代码
a > 0 和 a = 12
前一句的成本能比后一句低多少?底在哪了?
鬼知道谁比较快是比较慢,你可以用 c++写个循环自己去测一下啊。编译之后再用调试器去改下汇编代码就好了。
单纯回答这个问题的话,随便找一对 load 和 store 指令看文档就好了
所以不同的处理器上不一样,Intel 架构上 load store 指令有一大堆,估计这个数字还会各不相同。
上面链接里的这一对指令,在 Icelake 上是 store 的开销比 load 小
当然,以上回答其实没有意义,因为如一所说这个数字没有用。
不过,如果你要做的是一个并发的系统,可能是 cpu core 并行工作,也可能是你部署了一个集群来处理请求。
那么, 在很多情况下,最后系统的瓶颈是在对同一个位置的写操作上。
比如 atomic counter,不论是 cpu 上实现的还是 Redis 实现的,这个写操作都不可能被无限扩展,在 cpu core 足够多或者并发请求足够多的时候就会成为瓶颈。
所以,通常情况下,设计架构 /算法时,会让写操作少一些。