【Unix编程艺术】第12章 优化
来源:互联网 发布:iphone6在线软件 编辑:程序博客网 时间:2024/06/06 10:02
第12章 优化
Unix经验告诉我们最主要的就是如何知道不去优化,最强大的优化工具就是不做优化(摩尔定律)。
如果仅仅是为了减少资源使用的一个常数部分而优化是不值得的,更明智的做法是把高次的指数级降下来。
善用profiler估量程序,并谨记工具误差,降低误差影响的一个方法是在相同负载下多次profiler。
最有效的代码优化方法是保持代码短小简单,永远不要将核心数据结构和时间关键循环抛出缓存。
性能往往受限于IO(尤其是网络程序),经验法则是尽可能降低时延:对可以共享启动开销的失误进行批处理;允许事务重叠;缓存
优化的策略
1.批操作
积累更新数量的测量进行批处理,
例如named面对上千万的请求,把访问都放在内存缓存,减少对磁盘的IO,减少时延。
又例如roguelike程序使用X server 和 curse每隔一个时段进行屏幕更新组织,这个如背地话话的CS模式,减少传输的时延,更新的对cpu 磁盘io的密集。
2.重叠操作
等待响应结果与阻塞 是一件痛苦的事情,重叠操作重点是异步数量返回,
例如,pop3客户端与服务器处理请求是一步一步处理,处理完一个再处理一个,IMAP协议客户端可以发出请求,每个请求都有一个标记,等待一个请求回来就立刻处理,不需要等待全部结果回来。
3.缓存操作结果
python解析器,运行时会把源码,编译后存到磁盘上,直到被修改,这个需要每次检测文件修改与创建的时间戳,named也是一个例子,把访问的域名映射缓存下来,问题在于,在频繁更新,会造成不稳定性,有差异,
0 0
- 【Unix编程艺术】第12章 优化
- 【Unix编程艺术】第1章 哲学
- 【Unix编程艺术】第6章 透明性
- 【Unix编程艺术】第9章 生成
- 【Unix编程艺术】第10章 配置
- 【Unix编程艺术】第11章 接口
- 【Unix编程艺术】第13章 复杂度
- 【Unix编程艺术】第15章 - 第19章
- 【Unix编程艺术】第2章 历史 - 双流记
- 【Unix编程艺术】第4章 模块性
- 【Unix编程艺术】第5章 文本化
- 【Unix编程艺术】第7章 多道程序设计
- 【Unix编程艺术】第8章 微型语言
- 【Unix编程艺术】第3章 Unix哲学同其他哲学
- unix编程艺术学习笔记12-关于优化时机和技法
- 性能优化——unix编程艺术学习笔记
- 【Unix编程艺术】第14章 语言:C还是非C
- 《Unix编程艺术》读书笔记
- Rahul Zaveri
- 【Unix编程艺术】第11章 接口
- Qt 在vs2012下 使用Qt Linguist国际化
- vim config for C/C++/shell(ubuntu 12.04)
- Python SQL learning
- 【Unix编程艺术】第12章 优化
- Android 短信发送流程
- 让企业整体受益的3个热门“云”概念
- 【Unix编程艺术】第13章 复杂度
- hive与mysql的整合
- IOS开发 icon图标size
- hdu 1003
- Linux protobuf 2.5.0 安装
- 【Unix编程艺术】第14章 语言:C还是非C