Tôi có một tệp XML lớn (khoảng 37 MB, đó là tệp XML cơ bản trong tài liệu Word khoảng 350 trang) mà tôi đang cố gắng tìm kiếm thông qua XPath. Tôi đang làm điều này 'thủ công' thay vì lập trình, bằng cách mở tệp trong trình soạn thảo XML và tìm kiếm ở đó.
Tôi đã thử với Xmplify, QXmlEdit, SublimeText với tiện ích mở rộng XPath, v.v. .
Ví dụ, tôi vừa thử mở tệp trong Xmplify. Điều đó mất khoảng ba phút và không có tài liệu nào khác mở sử dụng bộ nhớ của Xmplify tăng lên khoảng 1 GB.
Sau đó, tôi đã cố gắng thực hiện truy vấn XPath này (Tôi đang tìm tất cả các phần chèn được theo dõi bao gồm chuỗi en ):
//w:ins[w:r/w:t = 'en']
Điều đó đã cho tôi một SPOD trong một thời gian tốt. Sau khoảng 15 phút sử dụng khoảng 100% CPU, Xmplify hiện đang sử dụng 60 GB bộ nhớ và hệ điều hành của tôi đã nói với tôi rằng tôi đã hết bộ nhớ ứng dụng và cần phải bắt đầu thoát khỏi công cụ.
Điều đó có vẻ khá quá đối với tôi đối với một truy vấn XPath trong một tệp duy nhất, ngay cả khi đó là một tệp khá lớn. Các ứng dụng khác mà tôi đã thử sử dụng không quá tệ, nhưng việc mở tài liệu và chạy bất kỳ loại truy vấn XPath nào vẫn mất vài phút và việc sử dụng bộ nhớ của chúng cũng có thể đếm được bằng GB, do đó, Xmplify không hiệu quả.
Lý do cho điều này là gì? Tại sao XPath (rõ ràng) rất tốn tài nguyên? Có khác nhau giữa các hệ điều hành (của tôi là macOS Sierra) không?
Tôi đã tranh luận về việc nên đăng bài này ở đây hay trên StackOverflow, nhưng vì tôi đặc biệt không làm điều này theo chương trình, tôi quyết định đây có lẽ là nơi tốt hơn. Hãy di chuyển nếu có Stack tốt hơn cho nó.