Python2.6 XML 读取

0 投票
1 回答
567 浏览
提问于 2025-04-16 00:43

我想把我的系统从 Active Python 2.4 升级到 Python 2.6.5。不过,我在解析 XML 文件时遇到了一些问题。输入输出的速度非常慢。

这是我的示例 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

我现在非常困惑…:

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

用100微秒来读取和解析你给的这么小的XML文件,听起来比25秒更合理(即使是在我用来计时的老笔记本上!)——但我该怎么解释我的解析速度比你的快了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的Intel Core Duo处理器,667 MHz的DDR2内存——正如我所说,这确实是一台相当老的机器!——Python版本是2.6.4,直接从python.org下载的。

撰写回答