小编Gre*_*ver的帖子

asyncio:如何组合同步代码而不强制完全暴露于 asyncio

看来python的asyncio是一种要么全有要么全无的交易。具体来说,它似乎强制完整的调用堆栈具有异步意识。

这是一个例子:

我们假设有一个由函数a()实现的算法。
该算法调用函数b()

def a(b):
  for i in ...:
    # do smth...
    res = b()
    # do smth more ...
Run Code Online (Sandbox Code Playgroud)

现在我们假设函数b()在不同的环境中可能有不同的实现方式,并且可能希望在异步事件循环(使用Loop.call_soon() )内调用a() ,并使用b()调用一些异步感知代码:

def b():
   await .... # this forces b() to be declared async.
Run Code Online (Sandbox Code Playgroud)

使用现有的事件循环似乎被明确禁止...那么,是否有方法可以实现此功能而不强制将整个堆栈(a()b())显式定义为异步协程?

python python-asyncio

6
推荐指数
1
解决办法
1023
查看次数

大熊猫时间戳与日期时间的缓慢表现

我似乎在pandas.Timestamp与python常规datetime()对象上遇到意外缓慢的算术运算性能.
以下是一个基准测试:

import datetime
import pandas
import numpy

# using datetime:
def test1():
    d1 = datetime.datetime(2015, 3, 20, 10, 0, 0)
    d2 = datetime.datetime(2015, 3, 20, 10, 0, 15)
    delta = datetime.timedelta(minutes=30)

    count = 0
    for i in range(500000):
        if d2 - d1 > delta:
            count += 1

# using pandas:
def test2():
    d1 = pandas.datetime(2015, 3, 20, 10, 0, 0)
    d2 = pandas.datetime(2015, 3, 20, 10, 0, 15)
    delta = pandas.Timedelta(minutes=30)

    count = 0
    for i in range(500000):
        if …
Run Code Online (Sandbox Code Playgroud)

python performance datetime numpy pandas

5
推荐指数
1
解决办法
2140
查看次数

标签 统计

python ×2

datetime ×1

numpy ×1

pandas ×1

performance ×1

python-asyncio ×1