ホームページ  >  に質問  >  本文

python的list的append方法的性能问题

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

PHP中文网PHP中文网2741日前636

全員に返信(1)返信します

  • 天蓬老师

    天蓬老师2017-04-18 10:18:51

    append の複数の呼び出しを反復処理すると複雑さが増し、extend の反復と同等になります。extend の反復は C で実装されているため、反復可能な項目からリストに連続する項目を追加する場合は常に高速になります

    説明:
    拡張は追加に高い効果を発揮します。

    追加 vs 拡張

    返事
    0
  • キャンセル返事