Home  >  Article  >  Backend Development  >  How to get detailed introduction of XML document size

How to get detailed introduction of XML document size

黄舟
黄舟Original
2017-03-03 17:07:211677browse

The format and size of xml documents are not certain. Some may only have a few lines, while others may be several megabytes. You may wonder whether you need to know the size of the XML document. And when performance becomes the primary issue, knowing the size of the XML document is a must.


From a performance perspective, there are two types of methods for processing XML documents. Batch processing takes less time to parse groups of documents. The real-time method is to process documents in real time. Performance in batch mode is measured by how many documents are processed in a certain period of time, while performance in real-time mode is measured similarly, but in terms of how long it takes to process a document.


Scenarios Scenarios
Imagine that you have a system that works in real time, such as a web server. This system needs to receive orders from customers in real time and needs to respond to this order immediately.

This system obviously cannot be used for batch processing. As a simple estimate, assuming this is a very simple order with only ten items, the XML document generated will be relatively small, approximately 4KB per document. In this case, use the DOM to parse the received document.

If you only have a few orders per hour, then system performance is not a problem for you. But think long term, one day the number of orders will be so large that you realize that system performance must be improved.

Now you start thinking about improving performance to accommodate the increased load. Your order documents are already small, and there's no real point in merging them into a larger document. From a vertical perspective, you can increase the processing capacity of the existing system; from a horizontal perspective, you can add more systems to spread the load.

Looking at another completely different field, you are now dealing with a large data warehouse. Completely different from a web server, you now use FTP to transfer XML documents with an average size of 300MB. If you still use the DOM to parse XML documents, you will quickly run into big trouble. On the contrary, it will be much better if you use SAX, which can directly parse the incoming XML documents without having to load them into memory in advance.


Change document size
Sometimes you will encounter special circumstances and need to change the size of the XML document. Imagine that you have a web server that processes XML documents in real time as before, but at this time the size of all documents is 400MB instead of 4KB. You cannot use the DOM method because it takes up too much memory. But because this is a real-time system, performance is very important. You can use SAX, but it will take time and a powerful processor.

In this case, you can improve system execution performance by changing the document size. For example, you can divide a 400MB document into 10 40MB documents, or 40 10MB small documents, which is more efficient than processing one 400MB document. In this way, you can use the DOM method to read files into memory for processing, and respond to each document request in a timely manner. You can also clear out irrelevant documents.

There is a similar situation in batch processing. Imagine you are processing thousands of 4KB documents through DOM batch processing. The best way is to merge a thousand files into one 4MB file. Because the loading of each document takes up system time (whether it is DOM or SAX). By merging a thousand documents into one, you only have to load a single document, which takes a thousand times less time.


The above is a detailed introduction on how to get the size of the XML document. For more related content, please pay attention to the PHP Chinese website (www.php.cn)!


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn