@cython.final @cython.internal cdef class _MemDebug: """Debugging support for the memory allocation in libxml2. """ def bytes_used(self): """bytes_used(self) Returns the total amount of memory (in bytes) currently used by libxml2. Note that libxml2 constrains this value to a C int, which limits the accuracy on 64 bit systems. """ return tree.xmlMemUsed() def blocks_used(self): """blocks_used(self) Returns the total number of memory blocks currently allocated by libxml2. Note that libxml2 constrains this value to a C int, which limits the accuracy on 64 bit systems. """ return tree.xmlMemBlocks() def dict_size(self): """dict_size(self) Returns the current size of the global name dictionary used by libxml2 for the current thread. Each thread has its own dictionary. """ c_dict = __GLOBAL_PARSER_CONTEXT._getThreadDict(NULL) if c_dict is NULL: raise MemoryError() return tree.xmlDictSize(c_dict) memory_debugger = _MemDebug()