• 时间戳函数如何避免效率问题


        Linux、Windows等操作系统的系统API时间函数一般涉及哪些操作,在高性能要求的程序中频繁调用,是否会影响效率?

          这里并非在针对性的确定性能瓶颈,只是曾经看到有评价时间函数的调用是一个代价较高的操作,所以想知道系统时间函数在Linux或Windows下是怎样实现的,这中间涉及哪些过程,进而了解为何有时间函数的调用是“代价较高”的操作这种说法。

          个人的理解,所谓开销大不大,要看参照的对象。时间函数比如gettimeofday()本身在所有系统调用里属于调用代价比较小的。之所以说他调用开销高,是因为他是一个系统调用,系统调用要完成用户态->内核态->用户态的转换,可能需要消耗上百时钟周期,和普通调用相比就很高。

          对于高级静态语言来说编写长时间或者高并发的应用,一般针对时间函数做优化可以采取下面的方法,编写一个时间模块,该模块定期使用时间函数获取时间并保存,其他模块使用时间时都通过该模块来获得保存下来的时间,降低了系统调用的频率,代价是获得的时间精度有损失,要按照应用场景进行权衡。

          因为是脚本程序员,所以很多人根本不会关心内存和执行效率这种问题,以至于一旦遇上,需要长时间执行,或者说需要大并发的服务就出现瓶颈,唉唉,还是关心下种问题,不要几句话就申明十多个临时数组来存东西,用N层的循环和递归来做一些基础的事情。一旦遇上像是node或者说twisted这种东西一瞬间脚本程序员就悲剧掉了。即便是js,针对那种一下午都不刷新的onePage页面,我想性能上也是问题,包容那些用ie引擎的人吧、

  • 相关阅读:
    UVA 10828
    素数推断算法(高效率)
    POJ1611 The Suspects (并查集)
    Android AES加密算法及事实上现
    C语言中的内存对齐
    OpenCV——老照片效果
    uuid 学习
    OpenCV——PS 滤镜, 浮雕效果
    加密算法之BLOWFISH算法
    OpenCV——照亮边缘
  • 原文地址:https://www.cnblogs.com/maxmys/p/3327226.html
Copyright © 2020-2023  润新知