I have a PHP script that builds a binary search tree over a rather large CSV file (5MB+). This is nice and all, but it takes about 3 seconds to read/parse/index the file.
Now I thought I could use serialize() and unserialize() to quicken the process. When the CSV file has not changed in the meantime, there is no point in parsing it again.
To my horror I find that calling serialize() on my index object takes 5 seconds and produces a huge (19MB) text file, whereas unserialize() takes unbearable 27 seconds to read it back. Improvements look a bit different. 😉
So – is there a faster mechanism to store/restore large object graphs to/from disk in PHP?
(To clarify: I’m looking for something that takes significantly less than the aforementioned 3 seconds to do the de-serialization job.)
It seems that the answer to your question is no.
Even if you discover a “binary serialization format” option most likely even that would be to slow for what you envisage.
So, what you may have to look into using (as others have mentioned) is a database, memcached, or on online web service.
I’d like to add the following ideas as well: