Python2.6 XML阅读

时间:2010-07-02 03:48:24

标签: python xml

我想将我的系统从Active Python 2.4迁移到Python 2.6.5。但是我在解析XML文件时遇到了一些问题。 I / O非常慢。

我的示例xml文件

<config><dicts><dictName>EnvDict</dictName><dictElems><key>AppServerIP</key>  <value>localhost</value><key>DBServerIP</key>   <value>localhost</value><key>DBServerName</key> <value>DB1</value></dictElems></dicts></config>

我的日志显示这个xml解析耗时25秒。

我的系统结构如下

Publisher-Subr用于将请求重定向到不同的模块

ClntMgrFact附加到PubSubr并侦听预定义的端口。它将产生一个从客户端登录的新进程。

ClntMgr(进程)由ClntMgrFact生成,并且还附加到PubSubr。 ClntMgr将生成一个ClntWorker(线程)来处理工作流。

ClntWorker需要从本地读取一些静态XML文件。但解析速度极慢。我的XML文件大约是500到700k。

任何人都可以在不改变系统结构的情况下提供帮助吗?提前谢谢。

1 个答案:

答案 0 :(得分:0)

非常感到困惑......:

$ py26 -mtimeit -s'import rex' 'rex.t()'
10000 loops, best of 3: 103 usec per loop

100微秒似乎比25秒更合理地读入和解析,你正在给出的这么小的XML文件(即使是我用于时间的旧笔记本电脑!) - 但是如何解释事实上,我的解析速度比你的快25万倍?!

这是rex.py,顺便说一下......:

import xml.etree.cElementTree as et

def t(fn='static.xml'):
  return et.parse(fn)

static.xml是我编写XML示例的文件(223个字符)。

那么你的平台,操作系统,Python版本,选择的XML解析器等等是什么?我正在使用macbook pro笔记本电脑,OSX 10.5.8,2.4 GHz英特尔酷睿双核处理器,667 MHz DDR2内存 - 正如我所说,确实是一款非常老旧的机器! - 直接从python.org使用Python 2.6.4。