我有
A--B--C master
\
D branch0
Run Code Online (Sandbox Code Playgroud)
然后,我壁球B
和C
成B'
.我如何变形branch0
,看起来像这样:
A--B' master
\
D branch0
Run Code Online (Sandbox Code Playgroud) 在 Python 中“冻结”集合的计算复杂度是多少?
例如,第二行是否
a = {1,2,3}
b = frozenset(a)
Run Code Online (Sandbox Code Playgroud)
需要 O(n) 时间?或者它只是在恒定时间内创建的“视图”?
假设yo = Yo()
是一个带有方法的大对象double
,它返回其参数乘以2
.
如果我通过yo.double
到imap
的multiprocessing
,那么它是非常缓慢的,因为每一个函数调用创建一个副本yo
,我认为.
即,这很慢:
from tqdm import tqdm
from multiprocessing import Pool
import numpy as np
class Yo:
def __init__(self):
self.a = np.random.random((10000000, 10))
def double(self, x):
return 2 * x
yo = Yo()
with Pool(4) as p:
for _ in tqdm(p.imap(yo.double, np.arange(1000))):
pass
Run Code Online (Sandbox Code Playgroud)
输出:
0it [00:00, ?it/s]
1it [00:06, 6.54s/it]
2it [00:11, 6.17s/it]
3it [00:16, 5.60s/it]
4it [00:20, 5.13s/it]
Run Code Online (Sandbox Code Playgroud)
...
但是,如果我yo.double
用函数包装double_wrap …