程序优化的那些事
2017-10-08 15:56
183 查看
系统设计层面
攒包/定时地进行批量处理。提高单包承载率,减少网络io、减少系统调用次数。数据处理(cpu消耗型代码)、io独立线程处理。
多地部署,就近接入。分set,避免跨城、跨地区流量访问。
消息队列尽量无锁化、一写一读等。
尽量减少无用的代理层,去中间商。
灰度机制。
内核级优化(操作系统多队列网卡特性等)。
数据自动报表化,多维度展现。
C语音层面
用register修饰高频访问的变量。register修饰的变量将尽可能放在CPU内部寄存器中,减少了访问内存的时间。inline修饰高频调用的函数
操作char型数据转换成操作long型数据,因为32位系统简单操作一次32位数据的时间几乎和操作一次8位数据的时间相同
for (j=0;j<8;j++)
src_buf[j]^=iv_crypt[j];
需要存取内存8*2次,每次只操作1字节,它优化之后的语句:
*(uint64_t *)src_buf ^= *(uint64_t *)iv_crypt;
只需存取内存2*2次,每次可以操作4个字节。
优化之前的语句:
while(nInBufLen) {
if (src_i<8) {
src_buf[src_i++]=*(pInBuf++);
nInBufLen--;
}
...
}
每个字节需要循环一次,优化之后,每8个字节循环一次。优化之后的语句如下:
while(nInBufLen) {
if (src_i == 0 && nInBufLen >= 8) {
*(uint64_t *)src_buf = *(uint64_t *)pInBuf;
pInBuf += 8;
nInBufLen -= 8;
src_i = 8;
...
}
...
}
内存对齐访问。
相关文章推荐
- 优化网站设计(二十六):设计“智能”的事件处理程序
- 使用Xdebug调试和优化PHP程序[2]
- 同构数查找程序的优化过程
- 基于C++ Lambda表达式的程序优化
- 使用Xdebug调试和优化PHP程序[1]
- php程序效率优化策略[转]
- Java程序性能优化
- 使用MySql优化你的PHP程序
- 用程序的思想浅谈优化福州一中发书
- linux下程序优化实践
- 从Java汇编来看Java程序的性能优化
- 从java汇编来看java程序的性能优化
- 3章 程序的机器级以及程序优化
- 《深入理解计算机系统》—优化程序性能
- asp.net程序性能优化的七个方面 (转)
- 【Android游戏开发之十】(优化处理)详细剖析Android Traceview 效率检视工具!分析程序运行速度!并讲解两种创建SDcard方式!
- cocos2d-x优化内存和程序大小
- Hibernate程序性能优化的考虑要点
- 程序性能优化的常用技术
- 程序性能优化