Flash的XMLSocket的性能分析(性能是随传递信息的加大而迅速下降的)
2005-01-17 02:21
411 查看
写ActionScript程序已经有4年多的时间了,编写Socket的程序还是不多,直到今年使用Flash编写PocketPc的程序才真正用到了Flash内置的XMLSocket客户端,因为AS解析XML是非常慢的,而在PocketPc下面就更慢了,因此虽然使用了XMLSocket,但其实是仅仅跟服务器相互传递字符串.
起初因为Socket服务端程序的限制,socket服务器查询数据库后,仅仅能一条一条的数据返回,这样就导致了当数据库中的数据很多的时候,传递速度成了大问题(在InJoyM300上,100条数据大约需要10s才能传递完成),这样的速度很明显用户是不能接受的,何况100条数据还是非超少的数据,而设计指标是1000条数据,也远大于100条数据.
从上面的情况,我想到了,查询速度慢的主要原因可能是请求次数过多,100条记录需要由socket客户端发出100条请求,而socket服务器又要返回100次的记录,我假想可能是大部分时间耗费在相互的请求上,这就是速度慢的主要瓶颈口,如果能够把socket服务器改做一次请求,全部返回的方式,则能节省大部分的时间,我甚至认为当数据大于100条的时候,能节省10倍以上的时间(因为用flashremoting访问http数据是很快的,同样在ppc下面).
于是在我再三的要求下,socket服务端的设计师将socket修改为客户端一次请求,可以多次返回数据,而返回数据量有客户端控制,得到新的socket服务器后,我立即进行了测试,结果发现,并没有像我想象的一样,同时返回多条数据并没有变快,后来等我跟单条数据一比较,发现一个意想不到的结果,就是多条返回比每次一条返回要慢的多,甚至是每次返回越多,速度越慢.下面是一部分测试数据:
单条返回一条记录:100~120ms 多条返回一条记录:100~120ms
单条返回8条记录:2s左右 多条返回8条记录:5s左右
单条返回100记录:10s左右 多条返回100条记录: >36s
对于上面结果,我查询了Flash的帮助文件,也到网上搜索,都没有找到相关的介绍.
由上面的数据我暂时得出结论,就是Flash的XMLSocket随着传递(接受)的数据量的加大,性能是急剧下降的(至少在PPC上是这样,PC上的flash还没有进行测试,可能也会是这样),Flash的Socket客户端更适合高速低数据量的交互,可能不太时候大数据量的信息交互
当然上面的结论还不一定是正确的,随着对flash的XMLSocket的更进一步的了解,相信会找到真正的原因,得出一个正确的原因,也能够解释上面的现象.
起初因为Socket服务端程序的限制,socket服务器查询数据库后,仅仅能一条一条的数据返回,这样就导致了当数据库中的数据很多的时候,传递速度成了大问题(在InJoyM300上,100条数据大约需要10s才能传递完成),这样的速度很明显用户是不能接受的,何况100条数据还是非超少的数据,而设计指标是1000条数据,也远大于100条数据.
从上面的情况,我想到了,查询速度慢的主要原因可能是请求次数过多,100条记录需要由socket客户端发出100条请求,而socket服务器又要返回100次的记录,我假想可能是大部分时间耗费在相互的请求上,这就是速度慢的主要瓶颈口,如果能够把socket服务器改做一次请求,全部返回的方式,则能节省大部分的时间,我甚至认为当数据大于100条的时候,能节省10倍以上的时间(因为用flashremoting访问http数据是很快的,同样在ppc下面).
于是在我再三的要求下,socket服务端的设计师将socket修改为客户端一次请求,可以多次返回数据,而返回数据量有客户端控制,得到新的socket服务器后,我立即进行了测试,结果发现,并没有像我想象的一样,同时返回多条数据并没有变快,后来等我跟单条数据一比较,发现一个意想不到的结果,就是多条返回比每次一条返回要慢的多,甚至是每次返回越多,速度越慢.下面是一部分测试数据:
单条返回一条记录:100~120ms 多条返回一条记录:100~120ms
单条返回8条记录:2s左右 多条返回8条记录:5s左右
单条返回100记录:10s左右 多条返回100条记录: >36s
对于上面结果,我查询了Flash的帮助文件,也到网上搜索,都没有找到相关的介绍.
由上面的数据我暂时得出结论,就是Flash的XMLSocket随着传递(接受)的数据量的加大,性能是急剧下降的(至少在PPC上是这样,PC上的flash还没有进行测试,可能也会是这样),Flash的Socket客户端更适合高速低数据量的交互,可能不太时候大数据量的信息交互
当然上面的结论还不一定是正确的,随着对flash的XMLSocket的更进一步的了解,相信会找到真正的原因,得出一个正确的原因,也能够解释上面的现象.
相关文章推荐
- 使用xml实现Webservice信息传递--调用
- uboot向内核传递Flash的分区信息
- socket, nio socket,及xml传递object 方法
- B/S架构下的socket推送方式 flash xmlsocket
- [原]dom sax stax解析xml性能分析
- Flash+xml应用篇:自定义事件返回xml信息
- Flash使用xmlsocket与.net服务端异步通信
- Sql Server 性能分析1 –查看数据库的相关信息
- flash Socket原理简要分析和flash Client网络层实现 .
- 人工智能系统通过网络提高其性能 “信息提取”系统转换纯文本为可以统计分析的数据
- 华强北折戟智能音箱 “单机版”覆灭传递了什么信息 | 分析
- Hadoop链式MapReduce、多维排序、倒排索引、自连接算法、二次排序、Join性能优化、处理员工信息Join实战、URL流量分析、TopN及其排序、求平均值和最大最小值、数据清洗ETL、分析气
- U-Boot如何向内核传递Flash的分区信息
- [原创]flash as2读取分析xml文档
- socket, nio socket,及xml传递object 方法
- Sql Server 性能分析1 –查看数据库的相关信息
- LoadRunner关于事务相关性能指标信息分析及证明部分内容
- Flash性能分析与调试工具
- socket, nio socket,及xml传递object 方法