Re: NSPropertyListSerialization/plutil bloat in Tiger vs Jaguar
Re: NSPropertyListSerialization/plutil bloat in Tiger vs Jaguar
- Subject: Re: NSPropertyListSerialization/plutil bloat in Tiger vs Jaguar
- From: Chris Kane <email@hidden>
- Date: Mon, 2 Jan 2006 08:18:08 -0800
On Dec 28, 2005, at 2:35 AM, Aaron Tuller wrote:
Ok, this is bizarre...
We bundle some data with our application, it's very simple and way
back when we decided to go with the plist format since it was so
straight-forward and easy to write/read to. Our data has a root
dictionary with 931 arrays in it, each array having 999 booleans.
so something like
[...]
i wrote a small tool to do this, and would run it on our input
file, it would create binary plists, all was good. So we have a
new input file today, i run it on Tiger (first time running the
tool since Jaguar days) and I get a huge file, it's 6.2 megs. On
Jaguar, same exact tool, same exact input file, it's 76k. I tried
on Panther and got the 6.2 meg file as well. I used plutil to
convert both the binary files to XML, and diff'd them and they are
the same. Running 'plutil -convert binary1 thefile-xml.plist' on
Tiger gives me a 6.2 meg file, same plutil command on Jaguar gives
me a 76k file, from the same XML file.
In Jaguar (10.2), the binary plist writing machinery uniqued
[identical] arrays -- and the other plist objects except dictionaries
-- which is why the file was small. But we got so many developer
complaints that this was SLOW that we stopped uniquing arrays too in
Panther (10.3). There were more changes in Tiger (10.4), and we're
probably not done yet. The object uniquing step was to make the
files smaller, and you must have a lot of identical arrays and so
it's a dramatic difference in your case. However, it is also the
performance bottleneck in the writing process. And the bottom line
is that developers care about speed much much more than size.
Chris Kane
Cocoa Frameworks, Apple
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Cocoa-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden