0

我正在使用 Python 的 Expat 解析一些 XML(通过调用parser = xml.parsers.expat.ParserCreate()然后将相关回调设置到我的方法)。

似乎当 Expat 调用read(nbytes)返回新数据时,nbytes总是 2,048。我有很多 XML 需要处理,并且怀疑这些小的 read() 使整个过程相当缓慢。作为参考,我在运行 Windows 7 的 Intel Xeon X5550、2.67 GHz 上看到大约 9 MB/s 的吞吐量。

我已尝试设置parser.buffer_text = Trueand parser.buffer_size = 65536,但 Expat 仍在read()使用仅 2,048 的参数调用该方法。

有可能增加这个吗?

4

1 回答 1

2

您说的是 xmlparse.ParseFile 方法,对吧?

不幸的是,不,该值在 pyexpat.c 中硬编码为 BUF_SIZE = 2048。

于 2011-10-31T22:14:59.107 回答