Memory Management in Node.js
The Apryse SDK in Node.js automatically cleans up all objects in memory when a process is initialized using PDFNet.runWithCleanup() once the process has finished running. In almost all cases, it is recommended to use the PDFNet.runWithCleanup() function to avoid memory leaks and complicated memory management.
For most situations, using PDFNet.runWithCleanup() and [Obj].takeOwnership() is sufficient for managing memory. However, there are additional ways to manage your memory usage:
Retain objects
In some situations you may wish to retain an object after the process has finished. A common example of this would be to create a document and retain it after processing. The ElementEdit sample on the samples page has an example of how this can be done.
[Obj].takeOwnership()
Deallocate objects
Deallocates individual objects. Only objects that derive from PDFNet.Destroyable have this method.
[Obj].destroy()
Deallocate stack
Stack-based deallocation. Calling endDeallocateStack() will deallocate all objects that were created since the last call to PDFNet.startDeallocateStack(). In general, stack-based deallocation is recommended because it is easier to manage for larger sections of code.
PDFNet.startDeallocateStack()PDFNet.endDeallocateStack()
Some examples
Here are some examples for the various deallocation options
Automatic (default) deallocation
Individual deallocation
PDFDoc.create PDFDoc.getPageIterator PDFDoc.destroy ElementWriter.create ElementWriter.destroy Iterator.destroy PDFNet.runWithoutCleanup
Stack-based deallocation
Last updated
Was this helpful?