python的list的append方法的性能问题
PHP中文网
PHP中文网 2017-04-18 10:16:51
0
1
630

作为客户端while true来循环接受server端推过来的数据,同时将这些数据append到一个list里面,不断更新。由于数据较多,我发现用append方法好像会占用cpu的30%-40%(通过top指令)。我现在想会不会是动态数组扩容的机制,导致了python内部会因为数组长度不够而重新分配一块更大的内存来给list扩容,这样就会产生copy,从而导致性能降低。但这个只是猜测,你们说有没有别的方法来代替append,或者直接给list定义为定长的?不知道这两种方法哪个可行,放假期间没法连接公司的server进行试验,但是想先问问看大家,有没有啥好思路?多谢了

PHP中文网
PHP中文网

认证高级PHP讲师

全部回复(1)
Peter_Zhu

迭代对append的多次调用会增加复杂性,使其相当于extend的迭代,并且由于extend的迭代是用C实现的,因此如果您打算将可迭代的连续项追加到列表中,它总是会更快

结论:
extend要高效于append。

追加与扩展

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!