ObjC Plist file read is faster then JSON? ObjC Plist file read is faster then JSON? json json

ObjC Plist file read is faster then JSON?


Since JSON files are smaller as size, I expected it to be faster.

There's no reason you should believe that. There are many factors that are much more important than file size.

Are there some optimizations that Xcode does on Plist files on build-time

Yes. If they're in the resource bundle, it will compile them to the Plist binary format, which is faster to read and parse than text formats in some cases (probably all cases really). This is done in the CopyPlistFile build stage.

After building, here's what they look like:

-rwxr-xr-x  1 rnapier  wheel     39556 Oct  7 13:06 FileDeserializeBenchmarking-rw-r--r--  1 rnapier  wheel       967 Oct  7 13:06 Info.plist-rw-r--r--  1 rnapier  wheel         8 Oct  7 13:06 PkgInfo-rw-r--r--  1 rnapier  wheel       111 Oct  7 13:06 data_dictionary_root_1.json-rw-r--r--  1 rnapier  wheel       110 Oct  7 13:06 data_dictionary_root_1.plist-rw-r--r--  1 rnapier  wheel       982 Oct  7 13:06 data_dictionary_root_10.json-rw-r--r--  1 rnapier  wheel       441 Oct  7 13:06 data_dictionary_root_10.plist-rw-r--r--  1 rnapier  wheel      9661 Oct  7 13:06 data_dictionary_root_100.json-rw-r--r--  1 rnapier  wheel      4219 Oct  7 13:06 data_dictionary_root_100.plist-rw-r--r--  1 rnapier  wheel     96488 Oct  7 13:06 data_dictionary_root_1000.json-rw-r--r--  1 rnapier  wheel     37730 Oct  7 13:06 data_dictionary_root_1000.plist-rw-r--r--  1 rnapier  wheel    965597 Oct  7 13:06 data_dictionary_root_10000.json-rw-r--r--  1 rnapier  wheel    233071 Oct  7 13:06 data_dictionary_root_10000.plist-rw-r--r--  1 rnapier  wheel  11655908 Oct  7 13:06 data_dictionary_root_100000.json-rw-r--r--  1 rnapier  wheel   3343077 Oct  7 13:06 data_dictionary_root_100000.plist$ file *.plistInfo.plist:                        Apple binary property listdata_dictionary_root_1.plist:      Apple binary property listdata_dictionary_root_10.plist:     Apple binary property listdata_dictionary_root_100.plist:    Apple binary property listdata_dictionary_root_1000.plist:   Apple binary property listdata_dictionary_root_10000.plist:  Apple binary property listdata_dictionary_root_100000.plist: Apple binary property list