系统的各种延时
图片摘自性能之巅
对比方式
对比以下方式的日志记录性能:
- 以udp包的方式发送,涉及到网络IO
- 写文件的方式,涉及到磁盘IO
- printf的方式,涉及到显示器IO
- 保存在内存中,仅涉及主存访问
对比测试程序
代码位置:https://github.com/rlistengr/tool/blob/master/log.c
上面的代码主要是记录日志的实现方式,测试程序没有上传,但是很简单,只要在开始和结束处调用clock_gettime做一下差值即可。
3000次日志记录,统计总时间。
硬件环境
mac下的virtualBOX,里面的一个ubuntu
测试结果
方式 | 时间 |
---|---|
udp包发送 | 30ms以上 |
写文件 | 25ms左右 |
printf | 350ms以上 |
保存在内存中 | 10ms |
总结
显然如果需要调试性能,优先采用将结果保存在内存中的方式,其次是写文件或者udp包的发送,基本不会采用printf的方式来调试性能
/-------------
探花原创