代码逻辑:

def  getInlink()

A  -> B  -> C ->  D

在tornado中调用getInlink

@tornado.gen.coroutinedef get(self):start2 = int(time.time()*1000)error, errReason, lstSummary = yield self.getInlink(utfQuery)print 'total use %d' % (int(time.time()*1000)-start2)

实践中,分别记录了上面四个步骤执行的时间, 假设为At, Bt, Ct, Dt,并且记录了getInlink总的时间,假设为ADt(调用getInlink方法到返回的时间)

发现4个代码片段的时间的和不等于总的时间, 也就是:

ADt >  At+Bt+Ct+Dt

原因是什么呢?

之前分析过的错误的原因:

A->D这个步骤中应该还有CPU调度的等待时间,这段代码并不是一直都在执行

尤其,这4步如果有IO的话,假设B中有IO,那么在B执行IO的过程中,该进程会被挂起,而当IO执行完后,也不一定马上就可以被CPU调度执行,很可能还要等待一段时间

正确的原因:

其实上面分析的原因不对,因为B中的IO虽然会等待被调度,但是Bt的时间其实已经包含了那段等待被调用的时间了

真实的原因应该是调用getInlink方法用了yield,所以它所在的get方法就变成了迭代器,这个方法需要等待被tornado的空闲的线程来调用,所以应该是:

ADt =  At+Bt+Ct+Dt + getInlink方法等待被执行的时间

日志中每段代码执行时间的和不等于整段代码执行的总时间相关推荐

  1. 关注LoadRunner脚本回放日志中的Warning信息

    最近在与大家的讨论中发现了LoadRunner的很多问题,出于解决问题的出发点,我也就相关自己不理解的问题在Google中搜索了一番,并通过一些实例也去实际操作了一遍,发现很多问题确实并不是那么难解决 ...

  2. C# 计算代码执行时间

    很多项目在刚上线的时候使用的都是OK的,用户也体会不出来什么问题. 可当程序运行个几年,或多或少会有一些运行起来变慢甚至失败的功能. 程序逻辑是对的,这时候就要找找是不是有海量数据循环对比的问题.想找 ...

  3. 如何解决按空格键却整段后移?

    如何解决按空格键却整段后移? 在处理整段的文字中,我们有时会发现,全选整段内容,直接按 段落 里的首行缩进,却形成整段后退,或者标题后退. 怎么办? 全选内容,按Ctrl+H,出现查找和替换,在查找内 ...

  4. 汇编语言:编写code段中代码,将a段和b段中的数据依次相加,将结果放到c段

    题目介绍 程序如下,编写code段中代码,将a段和b段中的数据依次相加,将结果放到c段. assume cs:code,ds:a,ds:b,ds:ca segmentdb 1,2,3,4,5,6,7, ...

  5. python代码斜率_在Python中准确地测量代码执行时间

    测量代码执行时间是困难的.学习如何消除系统和随机测量误差,并获得更可靠的结果. 我们经常需要测量代码的特定部分执行需要多长时间.不幸的是,简单地测量函数调用之前和之后的系统时间并不是很严谨,而且容易受 ...

  6. perf script 执行时间_在Python中准确地测量代码执行时间

    测量代码执行时间是困难的.学习如何消除系统和随机测量误差,并获得更可靠的结果. 我们经常需要测量代码的特定部分执行需要多长时间.不幸的是,简单地测量函数调用之前和之后的系统时间并不是很严谨,而且容易受 ...

  7. python测试代码运行时间_在Python中准确地测量代码执行时间

    Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发. 测量代码执行时间是困难的.学习如何消除系统和随机测量误差,并获得更可靠的结果. 我们经常需要测量代码的特定 ...

  8. python整段代码注释-Python中注释(多行注释和单行注释)的用法实例

    Python中注释(多行注释和单行注释)的用法实例 发布时间:2020-09-30 23:18:32 来源:脚本之家 阅读:97 前言 学会向程序中添加必要的注释,也是很重要的.注释不仅可以用来解释程 ...

  9. 如何在bash中等待多个子进程完成并在任何子进程以代码!= 0结尾时返回退出代码!= 0?

    如何在bash脚本中等待从该脚本派生的多个子进程完成并返回退出代码!= 0,当任何子进程以代码!= 0结尾时? 简单脚本: #!/bin/bash for i in `seq 0 9`; dodoCa ...

最新文章

  1. 春春幼儿园堆积木大赛_春云边车
  2. 动态Java代码注入
  3. 如何用正则表达式杀死Java
  4. bzoj 4570: [Scoi2016]妖怪 凸包
  5. 计算机信息的编码教案,信息的编码教案信息的编码教案.doc
  6. C语言 位段(位域)总结
  7. 红黑树-想说爱你不容易
  8. hdu2847(2009多校第四场) 01串添加最少01使被k整除(暴力)
  9. 给GridView编辑列按钮添加客户端提示信息
  10. 晓月antivirV8P绿色汉化扫描自由版
  11. Ubuntu-安装-有道词典
  12. c语言链表死循环,单项循环链表解决Joseph 问题,死循环了,求帮忙
  13. 你得真心喜欢些什么,才能过好漫长的冬天
  14. 服装收银系统2022年排行榜新鲜出炉!
  15. 手机usb计算机连接不能选择,USB调试 是灰色按钮,无法点击,现在手机无法与电脑连接。...
  16. c语言编程n元一次方程,用C语言编写程序:N元一次方程组的解.docx
  17. ESP8266-Arduino编程实例-OPT3001数字环境光传感器
  18. 正宇丨做事,要“借力”,不要“尽力”
  19. 前序+中序 =〉后序
  20. matlab单边带调制器设计,通信系统综合设计与实践(基于MATLAB的单边带调制)研究.doc...

热门文章

  1. 深入理解全局编录服务器GC
  2. SQL2008R2 收缩数据库问题 - 日志文件不变小
  3. “约定优于配置”与Magento改造尝试四之block、helper和model载入
  4. 每天CookBook之Python-048
  5. MySQL性能调优与架构设计-架构篇
  6. linux换源_Win10子系统(linux)安装及迁移
  7. R语言神经网络与深度学习(一)
  8. css 中多种边框的实现小窍门
  9. 针对WEB前端新人的前端知识体系
  10. JavaScript对数组的常见操作