作为客户端
用while true
来循环接受server端
推过来的数据,同时将这些数据append到一个list里面,不断更新。由于数据较多,我发现用append方法
好像会占用cpu的30%-40%(通过top指令)。我现在想会不会是动态数组扩容的机制,导致了python内部会因为数组长度不够而重新分配一块更大的内存来给list扩容,这样就会产生copy,从而导致性能降低。但这个只是猜测,你们说有没有别的方法来代替append
,或者直接给list定义为定长的?不知道这两种方法哪个可行,放假期间没法连接公司的server
进行试验,但是想先问问看大家,有没有啥好思路?多谢了
天蓬老师2017-04-18 10:18:51
추가 호출을 여러 번 반복하면 복잡성이 더해져 확장과 동일해지며, 확장의 반복은 C로 구현되므로 반복 가능한 항목에서 연속 항목을 추가하려는 경우 항상 더 빠릅니다. 목록에 추가
结论:
extend要高效于append。
추가 vs 확장