Dear pyxser users, I’m pleased to announce that I’ve released pyxser-1.5r. This release has several bug fixes plus enhancements. pyxser now is 15% faster and do not have memory leaks. For people who do know pyxser, it is a Python Object to XML serializer and deserializer. You install pyxser, and you will have functions to convert Python Objects into XML and viceversa, convert that XML back into a Python Object.
This release is quite special, I’ve added lazy initialization of some resources, so it runs 15% faster, and I’ve removed all memory leaks, so it just keeps using about 65MB of RAM when is doing the 1,500,000.00 serialization and deserialization test. I’ve spent more time coding pyxser for this release. Just comparing the performance between the older release 1.4.6r — a buggy release — with the current release 1.5r we can see the performance enhancement as follows:
The memory usage was reduced, on what object creation refers, but not on certain tasks — remember that now I’m using lazy initialization for some resources — and we can see a very similar to previous releases plot on how the memory is handled:
The memoization has suffered some important changes. Now it uses PyObject_Hash() as object identification method. It’s qute slower than past revisions, but still it works faster using lazy initializations. Another important change made to the serialization algorithm, is the fact that now it is skipping callable objects, so function will not be serialized on any manner.
On the distribution now you will find on the test
folder directory, some interesting tests, such as utf-16 encoding test and ascii encoding test. All serializations now are using the Python embeded Unicode codecs for deserialization, that is not the case for serialization, it is using the LibXML2 codec, so it can handle more encodings.
I must strongly thank to pyxser users for their feedback.