more effective c++ 读书笔记 第四章 效率

条款16
谨记80-20法则

这里作者谈的多是理念,比如,80%的资源被20%的代码所使用。所以大部分时候,我们所写的代码是平凡的,也就是说,在80%的时间里,他不会对整体效率有影响(有趣了)。大部分人对瓶颈的查找是猜,但是应该用正确的工具来测量。

条款17
考虑使用lazy evaluation

惰性求值的意思就是只有在被真正使用时才去做计算,比如写时复制这种特性。作者举了个例子:

string s1 = “hello”
string s2 = s1;
strng ctor 一般会使得s2拥有s1的副本,这里开销不小,会使用new 申请内存,然后复制。这是eager evaluation(急式评估),但其实可以先让s2和s1共享数据,当其中一个被修改时再去复制,这其实也就是享元模式。

对于读和写,这里比较难区分,比如cout<<s1[1]是读
s1[1] = 'a’是写,作者说后面会使用proxy class(代理类)解决。

缓式取出:指的是一个结构体字段的赋值可能来自网络或者某种IO,这时整体赋值是慢的,可以针对某个字段去赋值,即使用到了某个字段,才去进行IO操作赋值单独这个字段。
这个还是要看具体场景了。

表达式缓式评估:
比如有某个矩阵, m1, m2
计算m3 = m1 * m2可能计

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值