bash脚本性能测试之:代码段执行时间

Advertisement

一条显示脚本中某段代码执行时间的小函数。

  1. export befor_date
  2. export now_date
  3. befor_date=$(date +%s -d "$(date +%F' '%T)")
  4. dateflag(){
  5. now_date=$(date +%s -d "$(date +%F' '%T)")
  6. time_distance=$(expr ${now_date} - ${befor_date})
  7. hour_distance=$(expr ${time_distance} / 3600)
  8. hour_remainder=$(expr ${time_distance} % 3600)
  9. min_distance=$(expr ${hour_remainder} / 60)
  10. min_remainder=$(expr ${hour_remainder} % 60)
  11. echo -e "\t\t\t\tTime:\t${hour_distance}:${min_distance}:${min_remainder} "
  12. befor_date="${now_date}"
  13. }

只需要把dateflag放置到代码段的前后,便可以显示出代码段的执行时间,非常方便对脚本性能的调试。

灵感来源:http://roclinux.cn/?p=1781

显示效果如下: Time: 0:0:0
============TCP&UDP========================
<<<<<192.168.2.3
TCP:3460 OK
Time: 0:0:10
TCP:3461 OK
Time: 0:0:10

<<<<<172.16.2.13
TCP:4040 OK
Time: 0:0:1
TCP:3200 OK
Time: 0:0:1
TCP:4340 OK
Time: 0:0:1
TCP:4041 NOK
Time: 0:0:1
TCP:3201 NOK
Time: 0:0:0
TCP:4341 NOK
Time: 0:0:1

<<<<<172.16.2.14
TCP:4044 NOK
Time: 0:0:1
TCP:3200 NOK
Time: 0:0:1
TCP:4344 NOK
Time: 0:0:1
TCP:4045 NOK
Time: 0:0:0
TCP:3201 NOK
Time: 0:0:1
TCP:4345 NOK
Time: 0:0:1

<<<<<172.16.2.1
TCP:3000 OK
Time: 0:0:1
TCP:3001 OK
Time: 0:0:1
TCP:3002 OK
Time: 0:0:1
TCP:3003 OK
Time: 0:0:1

<<<<<172.16.2.2
TCP:3000 OK
Time: 0:0:1
TCP:3001 OK
Time: 0:0:1
TCP:3002 OK
Time: 0:0:0
TCP:3003 OK
Time: 0:0:1

<<<<<192.168.2.1
TCP:3460 OK
Time: 0:0:11
TCP:3461 OK
Time: 0:0:12

<<<<<192.168.2.2
TCP:3460 OK
Time: 0:0:16
TCP:3461 OK
Time: 0:0:17

本文出自 “希奥开源” 博客,请务必保留此出处

Similar Posts:

  • timeit 模块详解(准确测量小段代码的执行时间)

    timeit 模块详解 -- 准确测量小段代码的执行时间 timeit 模块提供了测量 Python 小段代码执行时间的方法.它既可以在命令行界面直接使用,也可以通过方法进行调用.该模块灵活地避开了测量执行时间所容易出现的错误. 以下例子是命令行界面的使用方法: $ python -m timeit '"-".join(str(n) for n in range(100))' 10000 loops, best of 3: 40.3 usec per loop $ python -m

  • bash脚本编程

    shell脚本基础 所谓的shell脚本,就是一大串命令集合成一个文本运行,也就是说,我们可以将平时在交互模式下写的命令,编写成文件内容让其执行,当然,shell脚本也不单单只是将命令集合起来,脚本里面融入了像,循环,遍历,判断分支等强大的功能, shell脚本的创建: 以.sh结尾的文件,如:newfile.sh , 书写要求是第一行要写上解释这个shell脚本的解释器,通常的shell脚本的解释器都是bash,也就是这样,#!/bin/bash ,第一行除了写解释器路径,不能写其他的,然后第

  • bash脚本之二(语法+测试)

    脚本文件格式: 第一行,顶格:#!/bin/bash #!/bin/bash 前面不能有任何字符或空白字符,空白行更是不行.称之为shebang 标记为以bash来执行.让内核调用解释器来运行,而不是当作二进制来执行. 目录: 一.顺序执行 二.条件测试 三.算术运算 四.选择执行 五.循环执行 六.数组使用 七.函数 bash脚本,面向过程的编程中 顺序执行: 默认法则,逐条执行各语句. 选择执行: 有不同的分支,经过条件判断, 符合条件的分支就会执行. 循环执行: 将同一段代码代码反复执行多

  • bash脚本编程之for循环

    bash脚本编程: shell: 交互式接口:编程环境:能够提供一些内部命令,并且能通过PATH环境变量找到外部命令:把命令提交给内核启动为进程:默认字符型: 条件测试:$? 命令的状态结果 真( 0 ).假(1-255) 过程式的编程语言的元素:变量.流程.函数.数组 变量类型大多分为:局部变量.本地变量.环境变量.位置参数变量.特殊变量 变量引用:${VAR_NAME} 引号:弱引用:"命令替换" 强引用:'直接显示' 命令引用:`返回结果` 声明某变量为整型变量:let VAR_

  • 非常好的BASH脚本编写教程

    这里有个老American写的 BASH脚本编写教程,非常不错,至少没接触过BASH的也能看懂! 建立一个脚本 Linux中有好多中不同的shell,但是通常我们使用bash (bourne again shell) 进行shell编程,因为bash是免费的并且很容易使用.所以在本文中笔者所提供的脚本都是使用bash(但是在大多数情况下,这些脚本同样可以在 bash的大姐,bourne shell中运行). 如同其他语言一样,通过我们使用任意一种文字编辑器,比如nedit.kedit.emacs

  • bash脚本编程之一变量、变量类型等

    grep:支持基本正则表达式,使用?.{}.()等元字符必须使用\转义 egrep:支持扩展正则表达式,多支持+.|等元字符,且无需转义 fgrep:fast grep,不支持正则表达式,效率最高,消耗资源最少. shell的编程特性:脚本编程 先看看编程语言的分类: 按语言等级层次分: 机器语言-->汇编语言-->高级语言 按语言特性分类: 编译型(静态)语言:执行前必须先编译成可执行格式,执行时无需其他条件 强类型(变量):变量在使用前必须先声明,甚至还需初始化 c.c++.c#.java

  • bash脚本:变量和变量类型

    变量类型:实现确定数据的存储格式和长度. 字符 数值 整形: 浮点型: 布尔型: 真(ture) 假(false) 逻辑运算: 与:& 或:| 非:! 短路逻辑运算: 与:只要一个为假,结果一定为假 或:只要一个威震,结果一定为真. 非: 引用: 强引用: 在变量使用前,一定要事先声明,甚至还需要初始化.变量在初始化前内容为一段随机数. 数值初始化为0. 字符串初始化为NULL. 弱引用:变量用时声明,不需要区分类型. bash变量类别: 1.本地变量: 作用域为整个bash进程.仅对当前she

  • 高级Bash脚本编程指南(五)(上)

    高级Bash脚本编程指南(五) 第四部分 高级 ++++++++++++++++ 到了这儿,我们将要准备深入脚本编程中一些难的,不寻常的话题.随着话题的展开,我们会 以多种方法和检测边界条件的方式来"打开信封",看个明白.(当我们涉足未知领域时会发 生什么?). 目录 19. Regular Expressions正则表达式 20. 子shell(Subshells) 21. 受限shell(Restricted Shells) 22. 进程替换 23. 函数 24. 别名(Alias

  • BASH脚本编写教程

    非常好的BASH脚本编写教程 这里有个老American写的 BASH脚本编写教程,非常不错,至少没接触过BASH的也能看懂! 建立一个脚本 Linux中有好多中不同的shell,但是通常我们使用bash (bourne again shell) 进行shell编程,因为bash是免费的并且很容易使用.所以在本文中笔者所提供的脚本都是使用bash(但是在大多数情况下,这些脚本同样可以在 bash的大姐,bourne shell中运行). 如同其他语言一样,通过我们使用任意一种文字编辑器,比如ne

  • Linux学习笔记--bash脚本编程之一变量、变量类型

    bash脚本编程之一变量.变量类型 shell编程: 编译器,解释器 编程语言:机器语言.汇编语言.高级语言 静态语言:编译型语言 强类型(变量)语言 事先转换成可执行格式 C.C++.JAVA.C# 动态语言:解释型语言 on the fiy 弱类型 边解释边执行 ASP.ASP.net.PHP.shell.Python.perl 面向过程:shell.C 面向对象:JAVA.Python .Perl.C++ 变量:内存空间,命名 内存:编制的存储单元 变量类型:事先确定数据的存储格式和长度