zoukankan      html  css  js  c++  java
  • 时间戳函数如何避免效率问题

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

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

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

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

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

  • 相关阅读:
    判断php变量是否定义,是否为空
    HTTP Client 编写
    推荐《冒号课堂——编程范式与OOP思想》
    一些免费的HTML编辑器
    如何判断mysql中数据表中两个列之间的相同记录和不同记录
    PostgreSQL 8.4, SQL Server 2008, MySQL 5.1比较
    JDBC纵览
    使用jdbc连接sql数据库
    关于PHP中变量的判定
    如何判断数据库中是否存在一个数据表
  • 原文地址:https://www.cnblogs.com/maxmys/p/3327226.html
Copyright © 2011-2022 走看看