Techniques for more efficient generation of XML events from XML data sources
First Claim
1. A method comprising:
- based on one or more characteristics of an XML data source, determining a memory size for an XML event-generating process to process said XML data source;
prior to processing the XML data source using the XML event-generating process, requesting, from a memory manager, allocation of a memory chunk of the memory size for use with the XML event-generating process;
processing the XML data source using the XML event-generating process, thereby generating one or more XML events, wherein processing the XML data source comprises;
the XML event-generating process determining that processing the XML data source requires the use of a plurality of memory buffers; and
the XML event-generating process creating the plurality of memory buffers in the previously allocated memory chunk, without calling the memory manager; and
after processing the XML data source, requesting that the memory manager deallocate the memory chunk;
wherein the method is performed by one or more computing devices.
1 Assignment
0 Petitions
Accused Products
Abstract
One may increase the efficiency of an XML event-generating process by reducing the number of requests to allocate or deallocate system memory. Such reduction may occur as the result of pre-allocating a memory chunk of sufficient size to contain all of the memory buffers required by a particular event-generating process. Instead of allocating new memory chunks for new memory buffers, an application may store any required buffers within the pre-allocated memory chunk. A sufficient memory size may be estimated by performing the event-generating process on a training set of XML documents. Also, an application may re-use buffers during the process or between different iterations of the process, thus avoiding the need to deallocate and reallocate memory that is essentially being used for the same purpose.
-
Citations
34 Claims
-
1. A method comprising:
-
based on one or more characteristics of an XML data source, determining a memory size for an XML event-generating process to process said XML data source; prior to processing the XML data source using the XML event-generating process, requesting, from a memory manager, allocation of a memory chunk of the memory size for use with the XML event-generating process; processing the XML data source using the XML event-generating process, thereby generating one or more XML events, wherein processing the XML data source comprises; the XML event-generating process determining that processing the XML data source requires the use of a plurality of memory buffers; and the XML event-generating process creating the plurality of memory buffers in the previously allocated memory chunk, without calling the memory manager; and after processing the XML data source, requesting that the memory manager deallocate the memory chunk; wherein the method is performed by one or more computing devices. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method comprising:
-
based on one or more characteristics of a plurality of XML data sources, determining a memory size for an XML event-generating process to process said plurality of XML data sources; prior to processing the plurality of XML data sources using the XML event-generating process, requesting, from a memory manager, allocation of a memory chunk of the memory size for use with the XML event-generating process; processing the plurality of XML data sources using the XML event-generating process, thereby generating one or more XML events, wherein processing the plurality of XML data sources comprises; wherein, for each particular XML data source of the plurality of XML data sources, processing the particular XML data source requires the use of at least one memory buffer; and the XML event-generating process creating without calling the memory manager, each memory buffer required for processing the plurality of XML data sources in the same previously allocated memory chunk; upon completion of processing the plurality of XML data sources, requesting that the memory manager deallocate the memory chunk; wherein the method is performed by one or more computing devices. - View Dependent Claims (12, 13, 14, 15, 16, 17)
-
-
18. One or more non-transitory computer-readable media storing instructions that, when executed by one or more computing devices, cause performance of steps comprising:
-
based on one or more characteristics of an XML data source, determining a memory size for an XML event-generating process to process said XML data source; prior to processing the XML data source using the XML event-generating process, requesting, from a memory manager, allocation of a memory chunk of the memory size for use with the XML event-generating process; processing the XML data source using the XML event-generating process, thereby generating one or more XML events, wherein processing the XML data source comprises; the XML event-generating process determining that processing the XML data source requires the use of a plurality of memory buffers; and the XML event-generating process creating the plurality of memory buffers in the previously allocated memory chunk, without calling the memory manager; and after processing the XML data source, requesting that the memory manager deallocate the memory chunk. - View Dependent Claims (19, 20, 21, 22, 23, 24, 25, 26, 27)
-
-
28. One or more non-transitory computer-readable media storing instructions that, when executed by one or more computing devices, cause performance of steps comprising:
-
based on one or more characteristics of a plurality of XML data sources, determining a memory size for an XML event-generating process to process said plurality of XML data sources; prior to processing the plurality of XML data sources using the XML event-generating process, requesting, from a memory manager, allocation of a memory chunk of the memory size for use with the XML event-generating process; processing the plurality of XML data sources using the XML event-generating process, thereby generating one or more XML events, wherein processing the plurality of XML data sources comprises; wherein, for each particular XML data source of the plurality of XML data sources, processing the particular XML data source requires the use of at least one memory buffer; and the XML event-generating process storing creating each memory buffer required for processing the plurality of XML data sources in the same previously allocated memory chunk; upon completion of processing the plurality of XML data sources, requesting that the memory manager deallocate the memory chunk. - View Dependent Claims (29, 30, 31, 32, 33, 34)
-
Specification