import time
import datetime
# 测试函数运行时间
def cal_time(fn):
"""计算性能的修饰器"""
def wrapper(*args,**kwargs):
starTime = time.time()
f = fn(*args,**kwargs)
endTime = time.time()
print('%s() runtime:%s ms' % (fn.__name__, 1000*(endTime - starTime)))
return f
return wrapper
@cal_time
def test():
print("开始计算程序运行时间-----------")
for i in range(1000000):
i = i +1
if __name__ == "__main__":
test()

  调用此方法

from cal_time import cal_time
'''
查找:在一些数据元素中,通过一定的方法找出与关键字相同元素的过程, 列表查找:从列表中查找指定元素
输入:列表、待查找元素
输出:元素下标(未找到元素时一般返回None或-1)
内置列表查找函数:index()
'''
# 顺序查找: 线性查找,从列表的第一个元素开始,顺序进行搜索,直到找到元素或搜索到列表的最后一个元素
# 时间复杂度 O(n) n---列表的长度 循环过程中无减半
@cal_time
def linear_search(li,val): # li 列表 val 待查找元素
for ind,v in enumerate(li):
if v == val:
return ind
else:
return None
# 二分查找 : 折半查找,从有序列表中的初始候选区li[O:n]开始,通过对待查找的值与候选区中间的值的比较,
# 可以使候选区少一半
# li[1,2,3,4,5,6,7,8,9] @cal_time
def binary_search(li,val):
left = 0
right = len(li) - 1
while left <= right:# 筛选候选区值
mid = (left + right) // 2
if li[mid] == val:
return mid
elif li[mid] > val:#待查找值在mid的左侧
right = mid - 1
else:# li[mid] 值小于val 意味着带查找的值在mid右侧
left = mid + 1
else:
return None #li = [1,2,3,4,5,6,7,8,9]
li = list(range(100000000))
linear_search(li,3888)
binary_search(li,3888)

  

Python测试函数运行时间的更多相关文章

  1. Python测试函数的方法之一

    Python测试函数的方法之一 首先介绍简单的try......except尝试运行的放例如下面的图和代码来简单介绍下: 注释:提醒以下代码环境为2.7.x 请3.x以上的同学们老规矩print(把打 ...

  2. 分析python程序运行时间的几种方法

    最早见过手写的,类似于下面这种: 1 import datetime 2 3 def time_1(): 4 begin = datetime.datetime.now() 5 sum = 0 6 f ...

  3. Python计算程序运行时间

    方法1 import datetime starttime = datetime.datetime.now() #long running endtime = datetime.datetime.no ...

  4. 计算Python代码运行时间长度方法

    在代码中有时要计算某部分代码运行时间,便于分析. import time start = time.clock() run_function() end = time.clock() print st ...

  5. python测试函数的使用时间

    1. 使用装饰器来衡量函数执行时间 有一个简单方法,那就是定义一个装饰器来测量函数的执行时间,并输出结果:(代码通用3.x) import time from functools import wra ...

  6. Python控制函数运行时间

    在某个Flask项目在做后端接口时需要设置超时响应,因为接口中使用爬虫请求了多个网站,响应时间时长时短. 我需要设置一个最大响应时间,时间内如果接口爬虫没跑完,直接返回请求超时. 从网上了解到有两种方 ...

  7. 在C中测试函数运行时间

    #include <stdio.h> #include <time.h> #include <math.h> clock_t start, stop; //cloc ...

  8. Python: 测试函数是否被调用

    # helper class defined elsewhere class CallLogger(object): def __init__(self, meth): self.meth = met ...

  9. Python 计算程序运行时间

    import time def start_sleep():    time.sleep(3) if __name__ == '__main__':    #The start time     st ...

随机推荐

  1. luogu 1587 [NOI2016]循环之美

    LINK:NOI2016循环之美 这道题是 给出n m k 求出\(1\leq i\leq n,1\leq j\leq m\) \(\frac{i}{j}\)在k进制下是一个纯循环的. 由于数值相同的 ...

  2. 实践录丨如何在鲲鹏服务器OpenEuler操作系统中快速部署OpenGauss数据库

    本文适合需要快速了解OpenGauss基本使用和操作的单机用户,可以短时间内完成安装体验.对于企业级生产使用或者需要部署多台服务器的,不适合本文. 因为业务需要,要在鲲鹏架构里安装单机版的OpenGa ...

  3. SpringMvc异常处理和SpringMvc拦截器

    1. 异常处理思路 Controller调用service,service调用dao,异常都是向上抛出的,最终有DispatcherServlet找异常处理器进 行异常的处理. SpringMVC的异 ...

  4. “随手记”开发记录day03

    今天完成了进入页面 还有记账页面 出现的问题,在登录页面中由于布局采用的错误 后边的view把前面的view遮住,看不出来,我们查找方法,找到了设置权重的办法解决 明天打算完成加号里面的内容

  5. MySQL时间设计 int timestamp datatime 查询效率性能比较

    在数据库设计的时候,我们经常会需要设计时间字段,在MYSQL中,时间字段可以使用int.timestamp.datetime三种类型来存储,那么这三种类型哪一种用来存储时间性能比较高,效率好呢?飘易就 ...

  6. Python数据类型-dic,set常见操作

    字典常见方法   语法:字典名[新key]=value 功能:给字典增加键值 语法:字典名[字典里存在的key]=新的value 功能:修改字典里的值   功能:删除字典的元素,通过key来进行删除, ...

  7. 理解JavaScript的原型链

    1. 什么是对象 在JavaScript中,对象是属性的无序集合,每个属性存放一个原始值.对象或函数. 1.1 创建对象 在JavaScript中创建对象的两种方法: ① 字面上: var myObj ...

  8. 2020-08-08:有一批气象观测站,现需要获取这些站点的观测数据,并存储到 Hive 中。但是气象局只提供了 api 查询,每次只能查询单个观测点。那么如果能够方便快速地获取到所有的观测点的数据?

    福哥答案2020-08-08: 参考答案:A.通过shell 或python 等调用api,结果先暂存本地,最后将本地文件上传到 Hive 中.B.通过 datax 的 httpReader 和 hd ...

  9. GitHub 热点速览 Vol.32:VScode 韭菜基金插件,极大提高“工作”效率

    作者:HelloGitHub-小鱼干 摘要:有什么比干着本职工作--编码,而又兼顾"外快"--炒股更有开心的事情呢?leek-fund 就是这么一个极大提升你工作幸福度和效率的插件 ...

  10. 关于vector的erase删除操作的两种不同方法,在linux与visual studio的实现讨论

    关于vector的erase删除操作的两种不同方法,在linux与visual studio的实现讨论 1.前言: 最近在做某一个题时,用到了vector的删除操作,利用的是erase()函数删除符合 ...