所以我有16 GB的XML文件需要处理(总共大约700个文件),而且我已经有了一个功能性的PHP脚本(使用XMLReader),但它需要永远。我想知道在Python中解析是否会更快(Python是我精通的唯一其他语言,我相信C中的某些东西会更快)。
答案 0 :(得分:2)
我认为他们两个都可以依赖快速C库的包装器(主要是libxml2),所以解析本身不应该有太大的区别。
你可以试试是否存在由开销引起的差异,那么它取决于你要对那个XML做什么。解析它是为了什么?
答案 1 :(得分:2)
这里实际上有三个不同的性能问题:
在哪里寻求性能改进取决于哪一个是最大的瓶颈。
我的猜测是最后一个是最大的问题,因为写入几乎总是最慢的:写入无法缓存,它们需要写入磁盘,如果数据已排序,则可能需要找到合适的地方来写它是一个相当长的时间。
您认为瓶颈是第一种选择,XML解析。 如果是这种情况,更改语言不是第一件事。相反,你应该看看你的语言是否有某种SAX解析器。 SAX解析比DOM解析更快,内存更有效。
答案 2 :(得分:1)
我无法确定Python是否最终会比PHP表现更好(因为我对PHP的性能特征并不十分熟悉)。不过,我可以给你一些建议。
另外,如果您对C有一定的了解,那么在Python中您可以识别代码中的瓶颈并轻松地在C中重新实现它们(尽管我怀疑您没有机会这样做)。