技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> PHP --> PHP 序列化与 .NET 中其它方式序列化的效率对比

PHP 序列化与 .NET 中其它方式序列化的效率对比

浏览:2561次  出处信息

    下面是对在 .NET Framework 3.5 中对 PHP、Binary、SOAP、XML、JSON、Hessian 和 Burlap 序列化/反序列化的效率对比,其中 PHP 序列化来自最新版本的 PHPRPC 3.0.1 for .NET,Hessian 和 Burlap 序列化来自Hessian C# 的最新版 1.3.3,其它的序列化都是采用 .NET Framework 3.5 中内置的功能。

    测试程序可从此处下载:test.zip

    下面是测试程序的运行结果图:

    大小: 30 K尺寸: 500 x 292浏览: 0 次点击打开新窗口浏览全图

    大小: 30.4 K尺寸: 500 x 292浏览: 0 次点击打开新窗口浏览全图

    大小: 30.33 K尺寸: 500 x 292浏览: 0 次点击打开新窗口浏览全图

    大小: 29.72 K尺寸: 500 x 292浏览: 0 次点击打开新窗口浏览全图

    大小: 31.22 K尺寸: 500 x 292浏览: 0 次点击打开新窗口浏览全图

    大小: 29.51 K尺寸: 500 x 292浏览: 0 次点击打开新窗口浏览全图

    大小: 34.28 K尺寸: 500 x 292浏览: 0 次点击打开新窗口浏览全图

    大小: 34.41 K尺寸: 500 x 292浏览: 0 次点击打开新窗口浏览全图

    大小: 36.12 K尺寸: 500 x 292浏览: 0 次点击打开新窗口浏览全图

    大小: 39.11 K尺寸: 500 x 292浏览: 0 次点击打开新窗口浏览全图

    大小: 35.34 K尺寸: 500 x 292浏览: 0 次点击打开新窗口浏览全图

    大小: 34.93 K尺寸: 500 x 292浏览: 0 次点击打开新窗口浏览全图

    从上面的运行结果来看 PHP 序列化和反序列化:

    对于基本类型的效率跟 Hessian 不相上下,远远超过其它序列化方式,甚至比 .NET 的 Binary 序列化和反序列化都要快好几倍。但是 Burlap 不支持浮点数的无穷大表示。

    对于字节数组来说,速度是 Binary 序列化的 2 倍,是 Hessian 的 10 倍,是 Burlap 的 25 倍,是 SOAP 的 36 倍,是 JSON 的 1000 多倍!

    对于数组来说,具有相同元素的数组,比 Binary 序列化要差一些,但是远远超过 SOAP、XML、JSON、Hessian 和 Burlap。具有不同元素的数组,跟 Binary、Hessian 序列化效率接近,比 XML、JSON、Burlap 稍快,远远超过 SOAP。

    对于 Hashtable 来说,效率也是超过 .NET Binary、Hessian 和 Burlap 序列化。比 SOAP 快近 10 倍,比 JSON 快了近 100 倍!而 XML 不支持。

    对于 ArrayList 和自定义类型来说,效率不如 .NET Binary 序列化,但是仍然远远超过 SOAP、Hessian 和 Burlap,而 XML 和 JSON 则根本不支持。

    而在空间占用上,其效率也超过了 Binary、SOAP、XML、Burlap,在基本类型上与 JSON、Hessian 不相上下,对于数组、Hashtable 则远远超过 JSON。

    所以,从上面的对比来看,PHPRPC 中所使用的 PHP 序列化是一种非常高效的数据表示方式,远远超过 SOAP、XML、JSON、Burlap 等序列化方式。其效率跟 .NET Binary、Hessian 序列化的效率可以算是不相上下,在综合水平上甚至超越了 .NET Binary、Hessian 序列化。另外在跨语言跨平台方面,PHPRPC 所使用的 PHP 序列化方式则比 .NET Binary 序列化要好的多,而 PHPRPC 本身又在稳定性、易用性、安全性、功能性和脚本语言的支持上又比 Hessian 好很多,通过这些数据我想更加可以说明 PHPRPC 的优秀了。

建议继续学习:

  1. MacBook Air与工作效率    (阅读:9523)
  2. 加班与效率    (阅读:4778)
  3. 解开 phprpc 序列化性能高于 hessian 的秘密    (阅读:4084)
  4. MySQL vs NoSQL 效率与成本之争    (阅读:3807)
  5. 对protostuff和java序列化的小测试    (阅读:3680)
  6. 冗余索引对查询效率的影响    (阅读:3678)
  7. 又一个有趣的面试题    (阅读:3492)
  8. 良好的书写规范提高PHP代码执行效率    (阅读:2565)
  9. C 语言的数据序列化    (阅读:2360)
  10. 前端开发,最好是多好?    (阅读:2255)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1