That doesn't seem like an unnecessarily large file for the number of edges (I'm assuming with float or double properties also) you have.  Thats only 100 bytes per edge.  It should compress nicely for storage.

The values you are storing are literally binary, and a hexidecimal representation is the most compact AFAIK.  I am not certain, but maybe you can round your floating point values to nice round (negative) powers of two to make them smaller.  You know, like .3 is not a simple number in hex: http://www.binaryconvert.com/result_double.html?decimal=046051 but .75 is because it comes from negative powers of two (1/2 + 1/4).

But, I'd bet the XML saves all the zeros for round numbers anyway.  You'd have to check.


Elliot


On Mon, Jul 7, 2014 at 9:48 PM, Flavien Lambert <petit.lepton@gmail.com> wrote:
Hi guys, when saving a graph with .save(), I understood that float are represented in hexadecimal exponentiation format. I was wondering the reason for that.

The thing behind my question is that I built a graph with 5M vertices and 50M edges so storing it as an XML file leads to a 5GB one. So, if I can find a way to reduce the size, I will be very happy.

Best,
F.

_______________________________________________
graph-tool mailing list
graph-tool@skewed.de
http://lists.skewed.de/mailman/listinfo/graph-tool