GET 技巧!python模块性能测试

发表于:2017-9-04 11:34

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:_昭昭_    来源:51Testing软件测试网采编

  算法是程序的灵魂,优秀的算法能给程序的效率带来极大的提升,而算法的优劣,往往要经过大量的测试
  在硬件环境基本不变的前提下,对算法实验的次数越多,测试算法运行效率的结果也就越接近真实值。
  python内置的性能分析模块,可通过指定次数的反复测试,来对算法的运行时间进行累加,透过对比运行时间的长短,我们可以更直观的了解,不同算法之间的优劣。
  以python列表的内置函数append和insert为例
  python内置的性能测试方法timeit.Timer.timeit()可用于对程序片段的执行耗时进行计数
  以python列表insert方法和append方法快速创建1至1000的列表为例:
  执行100次
  100次
  执行1000次
  1000次
  执行10000次
  10000次
  insert与append执行10000次相差了1.6秒,在不影响需求的情况下,建议尽量使用append提升效率。
  源码:
  import sys
  import timeit
  # 使用insert创建1~1000的数组
  def insert_num():
      thousand_list1 = list()
      for i in range(1, 1001):
          thousand_list1.insert(len(thousand_list1), i)
      #print (thousand_list1)
  # 使用append创建1~1000的数组
  def append_num():
      thousand_list2 = list()
      for i in range(1, 1001):
          thousand_list2.append(i)
      #print("append_num",thousand_list2)
  #使用列表生成式生成
  def main():
      name, num = sys.argv
      num = int(num)
      in_obj = timeit.Timer("insert_num()","from __main__ import insert_num")
      print("使用insert方法往列表插入1至1000, 方法反复执行%d次共耗时:"%num,in_obj.timeit(number=num),"秒")
      in_obj = timeit.Timer("append_num()","from __main__ import append_num")
      print("使用append方法依次往列表插入1至1000,方法反复执行 %d次共耗时:"%num,in_obj.timeit(number=num),"秒")
  if __name__ == "__main__":
      main()
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号