Calling function using Timeit
我正在尝试在python中计算一些时间,包括上传时间到亚马逊的S3云存储,并且遇到了一些麻烦。 我可以计算我的哈希值和其他一些东西,但不能上传。 我认为这篇文章最终会让我在那里,但我似乎无法找到救恩。 任何帮助,将不胜感激。 非常新的python,谢谢!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | import timeit accKey = r"xxxxxxxxxxx"; secKey = r"yyyyyyyyyyyyyyyyyyyyyyyyy"; bucket_name = 'sweet_data' c = boto.connect_s3(accKey, secKey) b = c.get_bucket(bucket_name); k = Key(b); p = '/my/aws.path' f = 'C:\\my.file' def upload_data(p, f): k.key = p k.set_contents_from_filename(f) return t = timeit.Timer(lambda: upload_data(p, f),"from aws_lib import upload_data; p=%r; f = %r" % (p,f)) # Just calling the function works fine #upload_data(p, f) |
您可以使用
只需将代码保存为模块而无需计时。 例如:
1 2 3 4 | # file: test.py data = range(5) def foo(l): return sum(l) |
然后你可以从命令行运行定时代码,如下所示:
1 | $ python -mtimeit -s 'import test;' 'test.foo(test.data)' |
也可以看看:
- http://docs.python.org/2/library/timeit.html#command-line-interface
- http://docs.python.org/2/library/timeit.html#examples
我知道这在Python社区中是异端,但我实际上建议不要使用
1 2 3 4 5 6 | from time import time t0 = time() myfunc() t1 = time() print t1 - t0 |
请注意,根据您的平台,您可能需要尝试