锁定老帖子 主题:Fastjson技术内幕
该帖已经被评为精华帖
|
|
---|---|
作者 | 正文 |
发表时间:2011-08-09
bizzad 写道 楼上的bean类,包含了非java自定义类型,这种bean设计不应该被推荐,复杂的项目容易引起问题
那些是非java自定义类型 |
|
返回顶楼 | |
发表时间:2011-08-09
lanblue173 写道 bizzad 写道 楼上的bean类,包含了非java自定义类型,这种bean设计不应该被推荐,复杂的项目容易引起问题
那些是非java自定义类型 我本意是指java中自带的类型,指可以直接映射为数据库中某一字段的类型 |
|
返回顶楼 | |
发表时间:2011-08-09
楼主做的真是太好了! 大约1个月以前,在看spymemcache代码时,看到它的编码使用除了int、long、boolean、byte等使用了自己的编码,Object类型直接使用java的序列化时,就觉得:1.jdk的序列化使用反射,递归遍历,速度不是很快;2.输出的序列化信息中,包含有类型信息,就是一个文本协议的Map,序列化后太大,在大量memcache请求下,网络的消耗太大;所以,当时应该找到一种更好的方法。 然后,看到了protobuf,但是需要自己写一个描述文件,觉得不是很方便; 如果,可以实现二进制的协议(序列化后,size小),而且可以使用asm技术来自动生成描述文件,那样就太好了。 最近,也做了很多这方面的准备,但是,看到楼主的分析,觉得自己.... 希望,楼主以后做的更好! |
|
返回顶楼 | |
发表时间:2011-08-09
fast,貌似不错
|
|
返回顶楼 | |
发表时间:2011-08-09
列举了hessian,居然不列举phprpc/hprose项目。。。。
楼主不厚道啊。 |
|
返回顶楼 | |
发表时间:2011-08-09
人才阿,祖国IT界的栋梁。
|
|
返回顶楼 | |
发表时间:2011-08-10
感觉protobuf比fastjson还要快,,,飘过
|
|
返回顶楼 | |
发表时间:2011-08-10
Hi, wenshao
我看了一下SerializeWriter的代码,有个地方不太理解。如果有时间的话请帮我解答一下: public SerializeWriter() { buf = bufLocal.get(); // new char[1024]; if (buf == null) { buf = new char[1024]; } else { bufLocal.set(null); } } 我想问的是为什么在else分支里面要调用set(null)。这样岂不是又把buf赋值为null? 那再次调用的时候又要重新在调用 new char[1024]? 谢谢。 |
|
返回顶楼 | |
发表时间:2011-08-10
前段时间仔细了解了下protobuf
想请教一些问题 1.protobuf能解决兼容的问题,fastjson可以么? 多了一些数据,或者少了一些,会抛异常不? 2.protobuf可以直接使用no-sql数据库的append操作减少io,fastjson可以么? |
|
返回顶楼 | |
发表时间:2011-08-10
ilxlf 写道 Hi, wenshao
我看了一下SerializeWriter的代码,有个地方不太理解。如果有时间的话请帮我解答一下: public SerializeWriter() { buf = bufLocal.get(); // new char[1024]; if (buf == null) { buf = new char[1024]; } else { bufLocal.set(null); } } 我想问的是为什么在else分支里面要调用set(null)。这样岂不是又把buf赋值为null? 那再次调用的时候又要重新在调用 new char[1024]? 谢谢。 你看close方法: public void close() { bufLocal.set(buf); } 如果不做bufLocal.set(null),一个线程持有两个SerializeWriter时,会导致内容错乱。 |
|
返回顶楼 | |