IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

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

CoolCode.CN 2009-10-21 09:00:28 累计浏览 3,417 次
本机暂存

    下面是对在 .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. 等了十年的 Go 链式管道,终于来了:seq 让你像写 Scala 一样写 Go (2026-06-25 18:38:18)
  2. Go 实验特性详解 (2026-06-21 10:05:27)
  3. amd64 微架构级别对 Go 程序性能提升多少? (2026-06-21 09:38:49)

查看更多 后端 文章 →

建议继续学习

  1. 使用gettext来支持PHP的多语言 (累计阅读 39,268)
  2. WordPress插件开发 -- 在插件使用数据库存储数据 (累计阅读 29,164)
  3. Paypal接口详细代码(PHP版,非API接口) (累计阅读 19,408)
  4. 我的PHP,Python和Ruby之路 (累计阅读 13,146)
  5. include(“./file.php”)和include(“file.php”)区别 (累计阅读 12,789)
  6. 15个最好的免费开源电子商务平台 (累计阅读 12,541)
  7. Redis消息队列的若干实现方式 (累计阅读 12,088)
  8. 到底什么是MVC? (累计阅读 11,865)
  9. 整理了一份招PHP高级工程师的面试题 (累计阅读 11,708)
  10. Rolling cURL: PHP并发最佳实践 (累计阅读 11,487)