首页 » 杂项 » 程序员需要知道的数字

程序员需要知道的数字

 

写很昂贵

  写意味着事务
  写磁盘意味着磁盘寻道,一次磁盘寻道需要10ms

读很便宜

  读不需要事务,只需要保证一致性
  数据只需要从磁盘读取一次,然后就可以缓存了
  从内存读取1MB数据只要250微妙(0.25毫秒)
  因此一秒钟,可以从内存中读取4GB数据
  如果每次读取1MB的内容,一秒钟可以读取4000次

其他数字

  L1 cache引用需要0.5纳秒,也就是1毫秒可以读取两百万次
  L2 cache引用,需要7纳秒,1毫秒可以读取14.28万次
  互斥锁(mutex lock/unlock) 需要100纳秒,那么1毫秒可以进行1万次
  内存引用需要100ns, 1毫秒可以进行1万次
  使用Zippy压缩1kB数据,需要10,000纳秒
  通过1Gbps网络发送2k bytes数据,需要20,000纳秒
  从内存读取1MB的顺序数据,需要250微秒
  从网络顺序读取1MB数据,需要10毫秒
  从磁盘顺序读取1MB数据,需要30毫秒
  Send package CA->荷兰->CA 150毫秒

教训

  写比读要昂贵40倍
  全局共享的数据是昂贵的,这是一个分布式系统的基本局限
  


http://www.itshouce.com.cn/other/numbers-everyone-should-know.html

原文链接:程序员需要知道的数字,转载请注明来源!

0