代码之家  ›  专栏  ›  技术社区  ›  jsstuball

get_event_loop()调用的开销

  •  1
  • jsstuball  · 技术社区  · 6 年前

    loop = asyncio.get_event_loop() 每个文件一次或写入一次 loop=asyncio.get_event_loop()

    我的同事认为,在课外进行全球性活动是一种糟糕的方式。但是,我不喜欢浪费CPU周期,在这个get_event_loop方法上,尽管开销很小,而且每个方法中都有额外的一行代码。

    哪种方法更好?

    2 回复  |  直到 6 年前
        1
  •  3
  •   user4815162342    6 年前

    除非你能证明 get_event_loop 正在对您的应用程序产生负面影响,我建议您不要进行这种微优化。使用 确保您的代码将在多个事件循环下运行,这些事件循环通常由测试线束或多次调用 asyncio.run .

    如果你真的觉得你必须优化 获取事件循环 ,至少生成一个类并在构造期间将其存储在实例中。这样可以避免函数调用,而代码在多个事件循环下仍然可以运行,至少只要对象的设计不超过事件循环。

        2
  •  3
  •   Andrew Svetlov    6 年前

    在Python3.7中 get_event_loop() 如果不能与 而且比 .

    对于Python3.6来说,这个函数稍微慢一点,但对于我打赌的任何用户代码来说,它仍然不是一个瓶颈。