2010-03-13 19 views
5

Có 3 IDOMImplementation sẵn trong Delphi:Có IDOMImplementation nào tốt hơn ngoài MSXML không?

  1. MSXML
  2. Xerces XML
  3. ADOM XML v4

MSXML là IDOMImplementation mặc định.

Thử nghiệm của tôi được tính thời gian cần tải tệp xml 10MB. Tôi sử dụng một đơn vị Delphi được tạo ra từ một XSD sử dụng liên kết dữ liệu XML để tải tệp xml. Đơn vị này có 3 chức năng phổ biến:

function Getmenubar(Doc: IXMLDocument): IXMLMenubarType; 
function Loadmenubar(const FileName: WideString): IXMLMenubarType; 
function Newmenubar: IXMLMenubarType; 

Tôi tìm hiểu từ web rằng một số nhận xét rằng phí của MSXML cao mà nó không thực hiện nếu so sánh với trình phân tích cú pháp XML khác. Tuy nhiên, nghiên cứu của tôi cho thấy rằng MSXML là tốt nhất trong số những người khác. Xerces 2nd XML và ADOM XML v4 điều tồi tệ nhất:

  1. MSXML - 0,6410 giây
  2. Xerces XML - 2,4220 giây
  3. ADOM XML v4 - 67.50 giây

Tôi cũng đi qua với OmniXML rằng tuyên bố có hiệu suất tốt hơn nhiều so với MSXML nhưng tôi không bao giờ thành công khi sử dụng nó với đơn vị được tạo ra bởi ràng buộc dữ liệu XML.

Có nhà cung cấp nào khác triển khai IDOMImplementation của Delphi hoạt động tốt hơn MSXML không? Tôi đang sử dụng Delphi 2010 và Windows 7.

+2

Bạn có chắc chắn cần một trình phân tích cú pháp DOM không? Trình phân tích cú pháp SAX nhanh hơn. –

+0

Tôi không biết nhiều về XML, nhưng tôi biết tính toán, và tôi biết điều này như một quy tắc chung: Nếu có phiên bản Microsoft và các lựa chọn thay thế, ít nhất một trong các lựa chọn thay thế * sẽ * tốt hơn. –

+0

Tại sao OmniXML không hoạt động cho bạn? Tôi sử dụng nó trong rất nhiều sản phẩm với thành công lớn. Và có nó là fater hơn MSXML. – Runner

Trả lời

1

OmniXML đó là nhanh hơn so với MSXML và là mã nguồn mở. Đó là MSXML phức tạp, do đó, việc chuyển đổi là rất dễ dàng. Sự kiện tên giao diện giống nhau. Sau đó, có SimpleStorage mở rộng giao diện OmniXML, để làm việc với XML trở nên rất dễ dàng. Xem các bản demo và các bài đăng trên blog về cách sử dụng SimpleStorage. Chỉ cần nhớ rằng các hoạt động phức tạp hơn trong SimpleStorage hy sinh một chút tốc độ để dễ sử dụng và quyền lực.

Các vấn đề liên quan