4
回答
CPython 与 PyPy 都能用的XML解析器大决杀
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   
最近的文章中,我比较了在CPython 3.3中使用 MiniDOM以及ElementTree,cElementTree,lxml.etree在XML解析的性能差别。比较结果则是MiniDOM在纯Python环境下以绝对劣势落败,然而我还想在PyPy1.7这个环境下也比较一下。因为 lxml.etree与cElementTree在该平台下是不可用的。所以这一次仅仅比较了ElementTree与MiniDOM。CPtyon环境的比较结果如下.


值得注意的是我在这次比较中也比较了它们的内存使用量,这次没有把PyPy与CPython直接比较,是因为这两个平台在内存管理机制上是不一样的,而且PyPy在启动时所需要的内存也是远远多余CPython。所以直接拿它们比较肯定是不准确的。


那么我们可以从这比较结果图中看出什么呢?如果你已经习惯了 MiniDOM 编码的话,那么建议你在PyPy环境去运行MiniDOM,因为不管是在性能还是内存使用上,MiniDOM在PyPy环境下比其他几个XML解析器要好很多。

然而,如果只是以XML解析速度的角度看问题的话,意味着你能在CPython中同时解析好几个XML文件,相反在PyPy中只能一次性解析一个。

综上所述,你采用哪个XML解析器还是取决于程序运行的平台以及内存提供的多少,Benchmark表能告诉我们一切。


原文链接, OSChina.NET原创翻译

举报
junwong
发帖于6年前 4回/2K+阅
顶部