ObjC Plist文件读取比JSON更快? [英] ObjC Plist file read is faster then JSON?

查看:107
本文介绍了ObjC Plist文件读取比JSON更快?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经完成了这个测试项目 https://github.com/danielpetroianu/FileDeserializeBenchmarking 什么是我从应用程序包中读取文件并反序列化的最快方法。

I've did this test project https://github.com/danielpetroianu/FileDeserializeBenchmarking to see what is the fastest way I can read a file from the app bundle and deserialize it.

我很惊讶地发现Plist文件的读取速度比JSON快。由于JSON文件的大小较小,我预计它会更快。

I was surprised to see that Plist files are being read faster then JSON. Since JSON files are smaller as size, I expected it to be faster.

Xcode是否在构建时对Plist文件进行了一些优化?
我做错了导致JSON反序列化花费更多时间吗?

Are there some optimizations that Xcode does on Plist files on build-time ? Have I done something wrong that causes JSON deserialization take more time ?

推荐答案


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.


Xcode是否在构建时对Plist文件进行了一些优化

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

是的。如果它们在资源包中,它会将它们编译为Plist二进制格式,在某些情况下(实际上可能是所有情况),它比文本格式更快地读取和解析。这是在 CopyPlistFile 构建阶段完成的。

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

这篇关于ObjC Plist文件读取比JSON更快?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆