【发布时间】:2016-01-05 17:04:35
【问题描述】:
我有一个功能需要在每次按键时运行,我想知道它是否做太多工作。为了弄清楚这一点,我会计时。如果它小于一毫秒,我将不得不对其进行迭代 1k - 100 万次,然后除以该数量。
虽然这看起来很笼统,但我还是要问,一个函数在 2015 年运行的最长时间应该是多少?有没有标准?
在视频游戏中,如果您想达到每秒 30 帧,那么您有 33 毫秒的时间可以玩,因为 1 秒等于 1000 毫秒,而 1000 毫秒/30 帧每秒等于 33 毫秒。如果您的目标是每秒 60 帧,那么您只有 15 毫秒的时间可以使用。那么在什么时候你会对你的软件开发人员说他们的功能需要太长时间呢?之后,1毫秒? 100 毫秒?
例如,如果您要使用 JQuery 在包含 1000 个元素的页面上查找一个元素,该函数需要多长时间? 100 毫秒太长了吗? 1毫秒太长了吗?人们用什么标准去遵守?我听说数据库管理员对查询有标准的搜索时间。
更新:
我真的不知道如何按照我的意思来表达这个问题。我问的原因是因为我不知道是否需要优化功能或继续前进。如果我对一个函数计时,我不知道它是快还是慢。因此,如果它小于一毫秒,我将忽略它,如果它长于一毫秒,我将继续处理它。
更新 2:
我找到了一个描述场景的帖子。查看this 问题中的数字。查询数据库需要 3ms。如果我是数据库管理员,我想知道扩展至一百万用户是否需要很长时间。我想知道在添加另一台服务器以帮助负载平衡之前 连接到数据库或执行查询需要多长时间。
【问题讨论】:
-
对我来说没有限制。你的函数永远不会返回。但对其他人来说,我认为执行得越快越好……
-
我得出的结论是,如果它不到一毫秒,我不会担心它。如果它需要更长的时间,我会重构它。顺便说一句,我可以使用的分析工具仅以毫秒精度进行测量。因此,当我在调用之前调用 getTimer() 并在调用之后调用 getTimer() 时,它可能会将时间差显示为零。
标签: performance load-balancing performance-testing database-performance