解析速度更快? 序列化的字符串或普通的PHP或其他东西?

所以,出于性能方面的原因,我需要我的应用程序以快速解析的方式存储大数据。 我知道JSON是可读的,但解码速度并不快。 所以这是我应该将我的数组转换为纯粹的PHP代码或我必须序列化,然后反序列化。 那么,哪个更快? 有没有更好的解决方案? 我可以自己做一个基准测试,但总是考虑其他人的经验:)

更多信息:通过大数组我的意思是从调用print_r()返回大约2MB值的数据! 并将它转换为纯php代码我的意思是:假设这是我的数组: {"index1":"value1","index2":"val'ue2"}这就是假设的函数convert_array_to_php()会返回什么:

$array = array('index1'=>'value1' ,'index2'=>'val'ue2');

取决于数据和使用模式。

通常,unserialize()比json_decode()更快,比include()更快。 然而,对于大数据量,瓶颈实际上是磁盘。 所以反unserialize(gzdecode(file_get_contents()))通常是最快的。 与从磁盘读取相比,解码速度的差异可能会被忽略。

如果您不需要读出用于打印或计算的完整数据集,那么速度最快的存储可能是SQLite。 它经常在内存中保留索引。


那么,我做了一个基准测试,我把大约7MB的纯php编码数组放到一个php文件中,并且把它的json版本放在另一个文件中,也是一个序列化版本。 然后在它们三个上做了一个基准测试,结果如下:正如预期的那样,json格式是最慢的解码方式,比纯php代码解析要长约3倍。 有趣的是,知道unserialize()是最快的,比原生php代码快4倍。


纯php代码可能必须是最快的。 但是,这不太可能是最好的选择,因为它可能难以维持。 这取决于数据的性质。

链接地址: http://www.djcxy.com/p/57667.html

上一篇: Which is faster to parse? Serialized string or plain PHP or something else?

下一篇: *fast* serialize/unserialize?