首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在python3.7中测量python-asyncio

如何在python3.7中测量python-asyncio
EN

Stack Overflow用户
提问于 2019-04-01 13:59:07
回答 1查看 184关注 0票数 2

我想计算一下python asyncio的性能,只选择cpu时间开销。

我读过how-to-measure-pythons-asyncio-code-performance

但是asyncio.Task._step被改成了私有,写到了c modules

代码语言:javascript
复制
import asyncio
print(asyncio.Task)  # _asyncio.Task

print(dir(asyncio.Task))
['__await__', '__class__', '__del__', '__delattr__', '__dir__', '__doc__', 
'__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', 
'__init__', '__init_subclass__', '__iter__', '__le__', '__lt__', '__ne__', 
'__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', 
'__str__', '__subclasshook__', '_asyncio_future_blocking', '_callbacks', '_coro', 
'_exception', '_fut_waiter', '_log_destroy_pending', '_log_traceback', '_loop', 
'_must_cancel', '_repr_info', '_result', '_source_traceback', '_state', 'add_done_callback', 
'all_tasks', 'cancel', 'cancelled', 'current_task', 'done', 'exception', 'get_loop', 
'get_stack', 'print_stack', 'remove_done_callback', 'result', 'set_exception', 'set_result']

我不能只使用py-code,因为我不想失去c代码的性能。

EN

回答 1

Stack Overflow用户

发布于 2021-08-14 09:24:32

像这样的东西可能是简单而有用的,

代码语言:javascript
复制
import time

def time_this(func, *args, **kwargs):
    st = time.process_time()
    func(*args, **kwargs)
    return time.process_time() - st

下面是一个示例,

代码语言:javascript
复制
In [1]: import time, asyncio
   ...: 
   ...: def time_this(func, *args, **kwargs):
   ...:     st = time.process_time()
   ...:     func(*args, **kwargs)
   ...:     return time.process_time() - st
   ...: 
   ...: print(time_this(asyncio.run, asyncio.sleep(5)))
0.001157819000000007

更新#1:

或者,您可以遵循this方法,编写自己的事件循环策略。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55448865

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档