Python 使用Expat控制每次读取()的字节数

Python 使用Expat控制每次读取()的字节数,python,xml,performance,expat-parser,Python,Xml,Performance,Expat Parser,我正在使用Python的Expat解析一些XML(通过调用parser=XML.parsers.Expat.ParserCreate(),然后设置对我的方法的相关回调) 当Expat调用read(nbytes)返回新数据时,nbytes总是2048。我有很多XML要处理,并且怀疑这些小的read()使整个过程相当缓慢。作为参考,我看到运行Windows 7的2.67 GHz Intel Xeon X5550上的吞吐量大约为9 MB/s 我已尝试设置parser.buffer\u text=Tru

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

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

我已尝试设置
parser.buffer\u text=True
parser.buffer\u size=65536
,但Expat仍在调用
read()
方法,参数仅为2048


有可能增加这个吗?

您说的是xmlparse.ParseFile方法,对吗


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

是的,这就是我正在使用的方法。好的,很高兴知道,谢谢。