一年前写的代码,发现性能很差,但还可以用,最近添加了很多数据处理,顿觉慢的不行,cpu占用满满的,一番检查下来发现copy.deepcopy的调用占用大量资源,改了一下,性能又十倍提升。
下面是部分解决方案,以及性能分析
https://stackoverflow.com/questions/24756712/deepcopy-is-extremely-slow
| 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)) |
还有:
https://stackoverflow.com/questions/45858084/what-is-a-fast-pythonic-way-to-deepcopy-just-data-from-a-python-dict-or-list/45858907
评论专区