zoukankan      html  css  js  c++  java
  • python运行时间计算之timeit

    timeit.timeit(stmt='pass', setup='pass', timer=<default timer>, number=1000000)

      stmt:statement,即使要执行的东西

      setup:赋值予stmt中某些不明确的变量对象,如果stmt已经足够明确了,那就可以省略

      timer:

      number:运行的次数

    e.g1:setup是如何用的

      >>> import timeit
      >>> timeit.timeit('char in text', setup=' text = "sample string"; char = "g" ')    #此地就是setup分别对stmt中的char与text两个变量赋予了值,注意,多附值语句用’;‘相隔
        0.41440500499993504
      >>> timeit.timeit('text.find(char)', setup=' text = "sample str"; char = "g" ')
        1.7246671520006203

    e.g2:如何运行一段字符串型代码

      >>> s = """
      ... try:
      ...     str.__bool__
      ... except AttributeError:
      ...     pass
      ... """
      >>> timeit.timeit(stmt=s, number=100000)
        0.9138244460009446
      >>> s = "if hasattr(str, '__bool__'): pass"
      >>> timeit.timeit(stmt=s, number=100000)
        0.5829014980008651
    

    e.g3:如何运行函数以及类的方法

      运行函数:

        IDE中:

          s="""
          def multinumber(a,b):
            return a*b
          """

          print( timeit.timeit('multinumber(3,4)', setup= s) )

        命令行中:

          >>> timeit.timeit( "f()" , """
          ... def f():
          ...   pass
          ... """ )
          0.13721893899491988

      运行类方法:

        IDE中:

        s="""
        class SomeClass:
         def method(self):
          pass
        """

        print(timeit.timeit( "SomeClass().method", s ))

        命令行中:

          >>> timeit.timeit( "obj.method()", """
          ... class SomeClass:
          ...   def method(self):
          ...     pass
          ... obj= SomeClass()        #注,此setip中即完成了类定义,还完成了赋值
          """)
            0.1980541350058047

    其中用的最多应该就是.eg3了,因为大量情况下我们需要用它来看一个函数的运行时间,或者是用类实现了一种数据结构类型,查看其各种方法的时间

  • 相关阅读:
    element:记一次重置表单引发提交数据为默认数据现象
    三种常用又简单的排序算法
    (07)GitHub从2021.08.13开始使用Token代替账号和密码
    does not implement methodSignatureForSelector:
    自用python库
    2048
    CCSP2021游记
    2021 CCPC 桂林站游记
    2021 ICPC 沈阳站游记
    2021SDU新生赛游记
  • 原文地址:https://www.cnblogs.com/pengsixiong/p/5329257.html
Copyright © 2011-2022 走看看