C#客户端通过http+XML+java访问数据库的效率如何

tianweima 2011-05-19 11:16:20
公司现有一项目,.net为c/s客房端,数据库为oracle,为了方便部署和进行一些统一处理,中间加了一层用java开发的web服务。方式是.net通过http的方式访问java(提交数据用页面参数方式),java与数据库交互后在http页面上返回xml格式的数据。
现在项目开发基本完了,但是发现数据访问比较慢,特别是java部分用的是多个关联实体方式,有时为了显示一个列表要下载6个关联实体。目前只是在公司内部测试,不知部署到公网上以后速度怎么样?还有是否有其它方面的问题?
以前没有做过这样的方式,请各位帮解答一下。
...全文
109 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jshzp 2011-05-19
  • 打赏
  • 举报
回复
同意3楼的,应该根据应用要求考虑只提取必要的数据,尽量减少通信量,对了,这个应该是“项目经理”的活儿。
tianweima 2011-05-19
  • 打赏
  • 举报
回复
谢谢两位的回复.
wtj2832:用xml来传输,有可能数据只有标识的一半或是不到,如果要下载200条数据,加上关联表,就有500多K了,你下个500多K的文件也要10-20S吧,虽然我们已尽量减少数据交互,但为了保证数据的实时性,一些数据是没法保存到本地后使用本地数据的.
sp1234:我所谓的列表不只是显示的列表,还有用于处理的数据列表,在应用系统中,有时还是必须要下载的,如选择的下拉条等.
  • 打赏
  • 举报
回复
另外就整体软件设计来看,如果动不动就是“显示一个列表”,那么这类软件也没有多大意思。比如你可以看看QQ,它主要是为了显示列表?不是的,是为了增进用户之间的通信。而凡是列表之类的功能,其实都是要小心谨慎地才提供的。如果开发软件的程序员满脑子是数据“列表”,这也就写不出畅销的实用软件了。
  • 打赏
  • 举报
回复
java程序员如果与.net程序员工资基本一样,那么其水平很可能只有.net程序员的一半。看看你们的项目中的java程序员是不是选择比较低水平的了。
wtj2832 2011-05-19
  • 打赏
  • 举报
回复
性能主要在业务数据生成的过程,传输过程只占一小部分。
mail_ricklee 2011-05-19
  • 打赏
  • 举报
回复
Http Restful
1 ProtoBuf序列化反序列化
2 byte[]->byte[] zip
3 byte[] zip->Base64String
4 Tomcat 7采用GZip传输

* 不采用Zip压缩算法测试结果,11列数据
* 5W 59M内存 生成文件大小8.5M 生成560ms 解析350ms
* 50W 590M内存 生成文件大小85M 生成6110ms 解析2750ms
* 500W 5.9G内存 生成文件大小820M 生成53.1s 解析25.7s
* 5000W 59G内存 生成文件大小8500M 生成531s 解析257s
mail_ricklee 2011-05-19
  • 打赏
  • 举报
回复
可以参考
(.Net)FortuneBase           2011.1.0112.40[20110516]
(Java)FortuneJ    2011.1.0117.16[20110515]
http://files.cnblogs.com/mail-ricklee/downloads.rar

可以采用ProtoBuf,ProtoBuf进行RPC

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧