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 *.plist
Info.plist: Apple binary property list
data_dictionary_root_1.plist: Apple binary property list
data_dictionary_root_10.plist: Apple binary property list
data_dictionary_root_100.plist: Apple binary property list
data_dictionary_root_1000.plist: Apple binary property list
data_dictionary_root_10000.plist: Apple binary property list
data_dictionary_root_100000.plist: Apple binary property list