Active Python 2.4에서 Python 2.6.5로 시스템을 마이그레이션하고 싶습니다. 그러나 XML 파일을 구문 분석 할 때 문제가 발생합니다. I/O가 매우 느립니다.Python2.6 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 초를했다 보여줍니다.
내 시스템 발행인 SUBR가
ClntMgrFact PubSubr가 부착되어 다른 모듈에 요청을 리디렉션하도록 미리 정의 된 포트를 청취하기 위해 사용된다
이하와 같은 구조이다. 클라이언트로부터 로그인을위한 새로운 프로세스를 생성합니다.ClntMgr (프로세스)는 ClntMgrFact에 의해 생성되며 PubSubr에도 연결됩니다. ClntMgr은 워크 플로를 처리하기 위해 ClntWorker (스레드)를 생성합니다.
ClntWorker는 로컬에서 정적 XML 파일을 읽어야합니다. 그러나 구문 분석은 매우 느립니다. 내 XML 파일은 약 500 - 700k입니다.
시스템 구조를 변경하지 않고도 아무도이 문제를 해결할 수 있습니까? 미리 감사드립니다.
xml 파일을 어떻게 읽으십니까? lxml을 사용하고 있습니까? 그것은 빠르다. – nosklo
나는 SAX를 사용하여 XML을 읽는다. import xml.dom.pulldom – Winston999
여기 뭔가 기괴하게 잘못된 것이 있습니다. 가장 느린 파서조차도 그렇게 간단한 것을 파싱하는데 눈에 띄는 시간이 걸리지 않습니다. 그 25 대를 빠는 일종의 다른 네트워크 조회가 있다고 생각합니다. – bobince