• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: NSPropertyListSerialization/plutil bloat in Tiger vs Jaguar
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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
  • Prev by Date: Re: Agent Applications and launchd
  • Next by Date: Re: Pointer to id
  • Previous by thread: Re: Agent Applications and launchd
  • Next by thread: Devices accessing
  • Index(es):
    • Date
    • Thread