`
gavin
  • 浏览: 83485 次
  • 性别: Icon_minigender_1
文章分类
社区版块
存档分类
最新评论

对比PHPRPC、Hessian、AMF3,做Flex倾向于AMF

阅读更多

    原先用socket传数据,想对比一下AMF,看了帖子:Java、PHPRPC、Hessian、Burlap、AMF3、XML 序列化的效率对比,想结合应用都对比一下,就是下载帖子里程序,把进行序列化/反序列化的数据改成项目里要用的。结果如下:

--------------------------------------------------------------------------------
20000次对自定义类型对象
Java - 时间:453|1000 长度:137
PHPRPC - 时间:1266|1250 长度:128
Hessian - 时间:8922|1218 长度:97
Hessian2 - 时间:7312|1000 长度:79
AMF3 不支持该类型
--------------------------------------------------------------------------------
自定义类型对象这个没改,PHPRPC确实很快,Flex里前端actionscript或javascript经常把Object当HashMap用,数据不大用自定义类型,所以测试下HashMap,把前面的自定义类型对象数据按key/value放到Map里,测试发现AMF快:
--------------------------------------------------------------------------------
20000次对Map类型对象
Java - 时间:656|1844 长度:216
PHPRPC - 时间:843|344 长度:87
Hessian - 时间:797|453 长度:62
Hessian2 - 时间:891|343 长度:42
AMF3 - 时间:469|203 长度:45
--------------------------------------------------------------------------------
测试下数据量比较大的,改成2000次,要不时间太长,在HashMap放上股票一天的高开低收和其它数据,把100个HashMap放到List里,Hessian2最快,AMF也还行,
--------------------------------------------------------------------------------
2000次对100条数据对象
Java - 时间:7219|4234 长度:13812
PHPRPC - 时间:12500|4641 长度:14297
Hessian - 时间:3672|6891 长度:14678
Hessian2 - 时间:1922|3703 长度:11183
AMF3 - 时间:3937|1688 长度:5802
--------------------------------------------------------------------------------
200条数据的测试结果和前面差不多:
--------------------------------------------------------------------------------
2000次对200条数据对象
Java - 时间:11422|7812 长度:27502
PHPRPC - 时间:29360|11671 长度:34886
Hessian - 时间:7500|14484 长度:29368
Hessian2 - 时间:2281|7078 长度:22382
AMF3 - 时间:8344|3547 长度:12613
--------------------------------------------------------------------------------
只做10次的结果,AMF不是最快的,但是也不错,选择的话还是考虑应用的并发量
--------------------------------------------------------------------------------
10次对200条数据对象
Java - 时间:62|47 长度:27502
PHPRPC - 时间:171|47 长度:34886
Hessian - 时间:31|78 长度:29368
Hessian2 - 时间:16|31 长度:22382
AMF3 - 时间:47|15 长度:12613
--------------------------------------------------------------------------------
做选择的话还是要根据自己传的数据类型和应用的并发量,另外也大致测试了一下flash反序列化,flash做前面那200条数据反序列化,AMF几十毫秒,Hessian,PHPRPC一百多毫秒,AMF最快,因为它是用C言语在做。当然在前端没有并发,这点时间不算什么。
另外关于支持的语言,Hessian、PHPRPC都是很多的,就不用说了。AMF比较常见的除了java还有php和python。具体好不好用不知道。目前稍稍关心的是C++能不能用,或是借道python,会不会太麻烦;或者像javascript那样借道swf,C++可以调用swf里的方法,就是不知道能不能返回值,哪位高手知道啊?
最后说一下对于股票行情类应用,AMF(blazeds)已经把推数据封装的很方便使用了。

分享到:
评论
1 楼 znjq 2010-04-23  
amf3 也支持自定义对象,对象必须要构造函数和pulic的field.
而且用最新的4.0的包,我做了比较,性能比其他的好很多倍

相关推荐

    AMF.rar_FluorineFx_FluorineFx amf_amf__flex_flex amf

    在Flex开发中,AMF被广泛用于Flex客户端与服务器间的远程调用(RPC)和服务端数据推送。 FluorineFx作为AMF的.NET实现,提供了对AMF0和AMF3两种版本的支持,涵盖了Flash Player的所有版本。通过FluorineFx,开发者...

    amf3_spec_05_05_08.zip_AMF3_above flash player_player

    AMF3,全称为Action Message Format 3,是Adobe Flex和Flash Player之间进行数据序列化和通信的一种高效格式。在标题“amf3_spec_05_05_08.zip_AMF3_above flash player_player”中,我们可以理解这是关于AMF3规范的...

    AMF.NET 文件极小的开源AMF解析库

    AMF是一种二进制的数据交换格式,常用于Flash、Flex和Adobe AIR等技术中的远程方法调用(RPC)和数据传输。FluorineFx是另一个知名的AMF库,但在某些情况下,其文件大小可能过大,不适用于对资源有限或者性能要求较...

    PHPRPC ——as3的结合……

    基于提供的标题和描述,我们可以推测这是一个关于使用AS3(ActionScript 3)与PHPRPC进行交互的项目,其中FLEX作为前端UI框架。AS3是Adobe Flash Player和Adobe AIR支持的编程语言,常用于创建富互联网应用程序(RIA...

    flex-hessian-java实例.rar

    Hessian是一种二进制Web服务协议,它提供了轻量级、高效的远程方法调用(RPC)机制,尤其适合于Java和Flex之间的通信。 在本实例中,我们将深入理解Flex与Java通过Hessian协议进行通信的过程。首先,我们需要了解...

    AMF1.0(AMP).zip

    在实际应用中,AMF常用于Flex和Flash中的远程方法调用(RPC),比如通过Flash remoting来调用服务器端的方法。在Flex应用中,可以使用 BlazeDS 或 GraniteDS 这样的中间件来处理AMF通信。 总的来说,AMF1.0作为早期...

    Flex中的Hessian

    在Flex开发中,Hessian能够帮助开发者实现轻量级的服务调用,使得远程方法调用(RPC)更加高效。 Hessian协议的核心特点包括: 1. **二进制格式**:Hessian使用紧凑的二进制格式,相比基于文本的协议(如HTTP或XML-...

    spring+hessian搭建rpc体系

    如果用tomcat部署服务器,需要hessian的认证,请在E:\tomcat\apache-tomcat-7.0.69\conf\tomcat-users.xml下面配置信息:如下 <role rolename="Hessian"/> 账号" password="密码" roles="Hessian"/>

    Flex + Zend AMF + MYSQL + WAMP 新手指南

    通过Zend AMF,Flex客户端可以轻松地调用PHP服务端的方法,实现远程过程调用(RPC)。 3. **MYSQL**: MySQL是一个流行的开源关系型数据库管理系统(RDBMS),广泛应用于Web应用程序中。它支持SQL标准,具有高性能...

    hessian轻量级 rpc实现

    《Hessian轻量级RPC实现详解》 在分布式系统中,远程过程调用(Remote Procedure Call,简称RPC)是一种常用的技术,它使得客户端能够像调用本地方法一样调用远程服务器上的服务。Hessian,由Caucho Technology开发...

    Hessian RPC-RMI技术 整合Structs Spring Hibernate Ibatis

    本文主要讨论的是如何将Hessian RPC与RMI技术整合到Structs、Spring、Hibernate和Ibatis这四个关键的Java开发框架中,以构建一个高效、灵活的分布式应用程序。 1. **Hessian配置说明**: Hessian的配置通常涉及...

    dubbo-rpc-hessian-2.8.4.jar

    java运行依赖jar包

    phprpc_3.0_delphi.zip_Free!_PHPRPC delp_PHPRPC for delp_delphi

    联系web和windows 应用的软件PHPRPC. PHPRPC for Delphi 是针对 Delphi 6 - 2009 原生程序开发版本的。如果你想将 PHPRPC 用于 Delphi.NET,请参见 PHPRPC for .NET 章节的相关内容。 PHPRPC for Delphi 的安装 ...

    socket+AMF3

    3. **Web服务调用**:在Flex或ActionScript开发的Web应用中,可能会用到AMF3来调用服务器端的RPC(远程过程调用)服务。 总结一下,"socket+AMF3"是网络通信和数据交换的一个高效组合,常用于需要快速、低延迟传输...

    PHPRPC asp.net的结合!

    这种结合方式适用于需要跨平台、跨语言协作的项目,例如已有PHP后端服务,但需要使用ASP.NET或Flex来增强用户体验的情况。通过PHPRPC,开发者可以充分利用ASP.NET的强大功能和Flex的交互性,同时保持后端的灵活性。...

    flex_spring_hessian框架(Java部分)

    在Java开发中,Flex-Spring-Hessian框架常常被用于构建富客户端应用,它整合了Adobe Flex前端与Spring后端服务,利用Hessian协议进行二进制RPC通信,提高了数据传输效率。本篇文章将围绕这三个关键组件,深入探讨...

    php rpc远程过程调用

    总的来说,PHPRPC是一个强大的工具,它简化了PHP应用之间的远程通信,使得开发者能够专注于业务逻辑,而无需过多关注底层通信细节。通过深入理解并运用PHPRPC,可以有效地提升分布式系统的开发效率和灵活性。

    Flex + Hessian 学习笔记(二)

    Flex和Hessian是一种常见的技术组合,用于构建分布式应用程序。在本学习笔记中,我们将深入探讨这两者以及它们如何协同工作。 Flex是Adobe开发的一种开放源码的富互联网应用(RIA)框架,它基于ActionScript编程...

    flex同jsp的结合

    虽然标签中提到了"PHPRPC",但Flex与JSP的结合通常不涉及PHPRPC,我们主要关注Flex与Java的交互。 1. **配置环境**: - 安装Flex SDK:首先需要下载并安装Adobe Flex SDK,这将提供编译Flex应用所需的工具。 - ...

    phprpc中文文档

    Phprpc是一个轻量级的PHP远程过程调用(RPC)框架,它允许开发者在不同的PHP进程中进行通信,实现服务间的高效数据交换。这个中文文档是对于Phprpc框架的详细解释,对于初学者和进阶用户都非常有用。文档包含了框架...

Global site tag (gtag.js) - Google Analytics