仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 472|回复: 11
打印 上一主题 下一主题

[学习教程] JAVA编程:Thrift Message deserialize 办法的一个弱点及改善仓酷云

[复制链接]
若天明 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:22:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
JAVA学习必须明确这是一项投资,对于大多数的人来说,学习JAVA是为了就业,还有就是刚走向工作位置的朋友想尽快赶上工作的节奏。明天在写code时,要挪用thrift的TDeserializer.deserialize()办法,发明其供应的接口很欠好用。会招致使用代码的多一次copy。
thrift源码以下:
  1. publicvoiddeserialize(TBasebase,byte[]bytes)throwsTException{base.read(protocolFactory_.getProtocol(newTIOStreamTransport(newByteArrayInputStream(bytes))));}
复制代码
能够看出,这里只能够传如byte[].
在使用程序中,假如接纳buffer复用,就会要招致buffer的不定长,如许的话,要挪用此函数就请求一其中间的copy历程,(因为java中并没有array的slice,据我所知效力最高的数组copy是System.arrayCopy(),挪用native办法),招致华侈空间和工夫。
办理办法是,增加此办法,但需编译thrift.jar
  1. publicvoiddeserialize(TBasebase,byte[]bytes,intoffset,intlen)throwsTException{base.read(protocolFactory_.getProtocol(newTIOStreamTransport(newByteArrayInputStream(bytes,offfset,len))));}
复制代码
如许的话就能够完成使用层的buffer复用,并且完成反序列化的zero-copy.

而学习JAVA我觉得最应该避免的就是:只学习,不思考,只记忆,不实践!
老尸 该用户已被删除
沙发
发表于 2015-1-20 22:13:07 | 只看该作者
任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言
小魔女 该用户已被删除
板凳
发表于 2015-1-30 06:41:00 来自手机 | 只看该作者
不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
透明 该用户已被删除
地板
发表于 2015-2-1 10:19:54 | 只看该作者
Java 编程语言的风格十分接近C、C++语言。
海妖 该用户已被删除
5#
发表于 2015-2-6 16:58:49 | 只看该作者
接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。
爱飞 该用户已被删除
6#
发表于 2015-2-7 04:08:42 | 只看该作者
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
第二个灵魂 该用户已被删除
7#
发表于 2015-2-20 11:55:11 | 只看该作者
是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言
若天明 该用户已被删除
8#
 楼主| 发表于 2015-3-6 17:02:45 | 只看该作者
是一种将安全性(Security)列为第一优先考虑的语言
山那边是海 该用户已被删除
9#
发表于 2015-3-8 02:28:48 | 只看该作者
Java 编程语言的风格十分接近C、C++语言。
灵魂腐蚀 该用户已被删除
10#
发表于 2015-3-8 07:35:30 | 只看该作者
J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。
admin 该用户已被删除
11#
发表于 2015-3-15 21:07:47 | 只看该作者
是一种为 Internet发展的计算机语言
再见西城 该用户已被删除
12#
发表于 2015-3-22 04:11:12 | 只看该作者
不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-24 01:25

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表