通过之前2篇文章的介绍,大家一定发现了,动态编译后的对象只能通过反射调用,但是反射往往是 一个程序性能的瓶颈,这个真的无法突破么?答案当然是否定的,接下来就我就来说说怎么才能,挖掘 动态编译的潜力。
一点废话
我刚来博客园才1星期左右,昨天才弄懂怎么发表到首页,先 说声抱歉了,昨天的文章有几个地方贴的源码居然少了几个字符,有点莫名其妙,也难怪有人不能运行 了,虽然是小错误,但是如果认真检查的话也是可以避免的,这是我的失误。
还有一点,这个《 玩转动态编译》是一个系列的,虽然没有大纲,不知道会写到几,但是内容一定是循序渐进的,所以如 果你看到了不合理的地方,请不要惊讶,可能我只是为了更好理解,也许下一篇就会把这个地方重构的 。
回复上一篇中的博友 飘的移
引用我只想:说这个效率实在太慢了,楼主什么时候能做 到接近FastJson或者Newton.Json的速度就牛叉了
FastJson是Java的,我测试不了,但就 Newtonsoft.Json的效率来说超过他还是可以的,所以在这个系列没有over之前耐心期待吧。。。。(这 个算广告吗)
书归正传,话转正题
通过之前2篇文章的介绍,大家一定发现了,动态编译 后的对象只能通过反射调用,但是反射往往是一个程序性能的瓶颈,这个真的无法突破么?答案当然是 否定的。
那怎么才能抛弃反射呢?
仔细看之前的《玩转动态编译》大家可以发现,之前2 个栗子编译的都是静态方法。
回到昨天的栗子中,被静态编译的User解析类
using blqw;using System;using System.Collections;using System.Text;public class _336090f4e7724d2585b07e79210decb4{ public static string a(User obj) { return new StringBuilder().Append("{\"UID\":") .Append(Json.Converter2.FromGuid((System.Guid)obj.UID)) .Append(",\"Name\":") .Append(Json.Converter2.FromString((System.String)obj.Name)) .Append(",\"Birthday\":") .Append(Json.Converter2.FromDateTime((System.DateTime)obj.Birthday)) .Append(",\"Sex\":") .Append(Json.Converter2.FromEnum((Enum)obj.Sex)) .Append(",\"IsDeleted\":") .Append(Json.Converter2.FromBoolean((System.Boolean)obj.IsDeleted)) .Append(",\"LoginHistory\":") .Append(Json.Converter2.FromArray(((IEnumerable)obj.LoginHistory).GetEnumerator())) .Append(",\"Info\":") .Append(Json.ToJson_2(obj.Info)) .Append("}").ToString(); }}
以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索json
, 编译
, 反射
, append
, fastjson
, 阿里巴巴fastjson问题
, system
, obj
, fastjson hibernate
, fastjson 时间格式化
, fastjson map
, json性能测试
fastjson常用方法
反射和反编译、java 反射性能、反射性能、golang 反射性能、java反射性能优化,以便于您获取更多的相关知识。