擅长:python、mysql、java
<p>实际上,deepcopy非常慢。但我们可以使用json、ujson或cPickle。
我们可以使用json/cPickle转储一个对象,稍后再加载它。
这是我的测试:</p>
<pre><code>Total time: 3.46068 s
File: test_deepcopy.py
Function: test at line 15
Line # Hits Time Per Hit % Time Line Contents
==============================================================
15 @profile
16 def test():
17 100 957585 9575.9 27.7 b = deepcopy(a)
18 100 862 8.6 0.0 c = copy(a)
19 100 42295 422.9 1.2 d = ujson.loads(ujson.dumps(a))
20 100 85040 850.4 2.5 e = json.loads(json.dumps(a))
21 100 2323465 23234.7 67.1 f = pickle.loads(pickle.dumps(a, -1))
22 100 51434 514.3 1.5 g = cPickle.loads(cPickle.dumps(a, -1))
</code></pre>
<p>我们可以看到,json/ujson/cPickle比deepcopy快,但是pickle。。。</p>