+=和join效率的问题
byunfi opened this issue · comments
在处理长度为4201612的字符串时
+=用了91.966637s
join用了10.327656s
虽然上面的情况比较极端,我觉得还是尽量用join更好一些
环境是OS X 10.14.5 Python3.7
你好,感谢你的测试。确实 join 的整体性能还是比 += 要高上一些的。我文章里的主要观点是不必对 += 过于排斥,绝大多数情况下用它不会有任何性能问题。刚找了一下 Django 源码,发现一些有趣的事情:
- join:https://github.com/django/django/blob/master/django/utils/text.py#L145
- 拼接:https://github.com/django/django/blob/master/django/utils/text.py#L215
两种写法都有用,都没啥问题。随便写,只要代码直观就行。😬
实际差别应该是内存空间上行为不同造成的吧,join似乎更省一些。(忘了在哪看过的)