2011-10-31 5 views
0

파이썬의 Expat (parser = xml.parsers.expat.ParserCreate()을 호출 한 다음 관련 메소드를 내 콜백으로 설정)를 사용하여 XML을 구문 분석하고 있습니다.Expat를 사용하여 한 번에 read() 바이트 수 제어

Expat가 read(nbytes)을 호출하여 새 데이터를 반환하는 경우 nbytes은 항상 2,048입니다. 나는 많은 XML을 처리해야하고, 이러한 작은 read()가 전체 프로세스를 다소 느리게 만들고 있다고 생각합니다. 참조 점, 나는, 윈도우 7

를 실행 2.67 GHz의 내가, parser.buffer_text = Trueparser.buffer_size = 65536 설정을 시도했습니다 인텔 제온 X5550의 9 메가 바이트/s의 주위 처리량을보고 있어요하지만, 국외 거주자는 여전히 함께 read() 메소드를 호출한다 단지 2,048의 주장.

이것을 늘릴 수 있습니까?

답변

2

당신은 xmlparse.ParseFile 메서드에 대해 이야기하고 있습니다.

불행히도 아니요, 해당 값은 pyexpat.c에서 BUF_SIZE = 2048로 하드 코드됩니다.

+0

예, 사용하고있는 방법입니다. 알았어, 고마워. 고마워. – unwind