该帖已经被评为精华帖
|
|
---|---|
作者 | 正文 |
发表时间:2010-12-22
之前研究过jackson,做过性能测试,序列化性能跟直接写死的StringBuffer拼接性能很接近,楼主的fast-json这么牛B,期待楼主开源,好让大伙使用。
|
|
返回顶楼 | |
发表时间:2010-12-22
最后修改:2010-12-22
chris_zley 写道 楼主多讲讲写parser的经验嘛。。
手写parser并不是很困难的事情,熟悉之后,你也许会觉得很简单。有很多开源的代码可以借鉴,比如说OpenJDK中javac的源码。 一般的做法都是把词法和文法分开。词法的实现通常比较简单,很容易实现,不会写的话,从javac中抄一个也是可以的,一般词法分析的实现都叫Lexer或者Scanner。有了词法之后,就需要构建文法,文法的实现也是很简单的,类似Java、SQL文法解析,复杂一点点的就是运算符优先级的处理了,这也简单,搞过一次之后按照运算符优先级做某种递归的处理就OK了。文法分析的实现一般都叫做Parser。 总之,都是你一旦掌握之后就觉得很简单的事情。 手写的Parser一般都比工具生成的要快得多,比如antlr、javacc之类的生成的代码,效率都很低的,商用编译器的parser大多都是手写的。SimpleJSON应该是使用javacc生成的parser,性能不好,而且一旦出错,错误提示非常不好!!Jackson不是手写的Parser,但是感觉它写Parser还不是很专业的,但是其中用了一些技巧,专门针对某种场景优化的,对JSONObject中的key做了优化,如果输入文本中存在N个JSONObject,而且Key是一样的,他的性能会得到优化得到提升,我认为加入这个优化不值得,因为这种场景的优化,会导致其他场景的性能降低。我写的Parser,不需要对特别场景优化,对于Jackson优化过的场景,性能也是一样的,甚至略快一点点。 |
|
返回顶楼 | |
发表时间:2010-12-22
GRDJE 写道 弄点那民工货, 瞧那得意样......
吹牛好玩嘛,何必那么认真呢,而且我也不是凭空吹牛的,看不惯别看好了 |
|
返回顶楼 | |
发表时间:2010-12-22
GRDJE 写道 弄点那民工货, 瞧那得意样......
看了你的回帖,动不动就“民工货”“没见过大公司的软件”。 送你一句话: 夫学贵得之心,求之于心而非也,虽其言之出于孔子,不敢以为是也,而况其未及孔于者乎?求之于心而是也,虽其言之出于庸常,不敢以为非也,而况其出于孔子者乎? |
|
返回顶楼 | |
发表时间:2010-12-22
willothe 写道 GRDJE 写道 弄点那民工货, 瞧那得意样......
看了你的回帖,动不动就“民工货”“没见过大公司的软件”。 送你一句话: 夫学贵得之心,求之于心而非也,虽其言之出于孔子,不敢以为是也,而况其未及孔于者乎?求之于心而是也,虽其言之出于庸常,不敢以为非也,而况其出于孔子者乎? |
|
返回顶楼 | |
发表时间:2010-12-22
wenshao 写道 GRDJE 写道 弄点那民工货, 瞧那得意样......
吹牛好玩嘛,何必那么认真呢,而且我也不是凭空吹牛的,看不惯别看好了 不是说吹不吹牛, 就那两行代码, 有啥好开心的, 自娱自乐罢了..啥都不是.... |
|
返回顶楼 | |
发表时间:2010-12-22
GRDJE 写道 wenshao 写道 GRDJE 写道 弄点那民工货, 瞧那得意样......
吹牛好玩嘛,何必那么认真呢,而且我也不是凭空吹牛的,看不惯别看好了 不是说吹不吹牛, 就那两行代码, 有啥好开心的, 自娱自乐罢了..啥都不是.... 这个GRDJE 估计是重庆HP的 专干外包活 |
|
返回顶楼 | |
发表时间:2010-12-22
callofseen 写道 GRDJE 写道 wenshao 写道 GRDJE 写道 弄点那民工货, 瞧那得意样......
吹牛好玩嘛,何必那么认真呢,而且我也不是凭空吹牛的,看不惯别看好了 不是说吹不吹牛, 就那两行代码, 有啥好开心的, 自娱自乐罢了..啥都不是.... 这个GRDJE 估计是重庆HP的 专干外包活 这都被你看出来啦, 你当你FBI啊..... |
|
返回顶楼 | |
发表时间:2010-12-22
JE精典又出现了,吹牛都可以吹出精华贴,哈哈。
|
|
返回顶楼 | |
发表时间:2010-12-22
期待LZ的code
|
|
返回顶楼 | |