编译原理
魏小言
BAT资深工程师,Cloud Native 拥护者,敏捷实践者,坚守开发一线打磨工匠技艺的架构师。对基础架构和微服务有丰富的研究和实践。微信群请私信博主
展开
-
线程切换比进程快
线程比进程更快,吞吐更强,本文从切换方面介绍 我们都知道线程切换的开销比进程切换的开销小,那么小在什么地方?切换的过程是怎样的?无论是在多核还是单核系统中,一个CPU看上去都像是在并发的执行多个进程,这是通过处理器在进程间切换来实现的。操作系统实现这种交错执行的机制称为上下文切换。操作系统保持跟踪进程运行所需的所有状态信息,这种状态,也就是上下文,它包括许多信息,例如PC和寄存器文件的当前值,以及主存的内容。在任何一个时刻,单处理器系统都只能执行一个进程的代码。当操作系统决定要把控制转载 2020-11-30 17:53:57 · 3675 阅读 · 0 评论 -
编译原理过程简述及中间代码优化
一、编译过程图示如下:词法分析作用:找出单词 。如int a=b+c; 结果为: int,a,=,b,+,c和; 语法分析作用:找出表达式,程序段,语句等。如int a=b=c;的语法分析结果为int a=b+c这条语句。 语义分析作用:查看类型是否匹配等。二、中间代码优化所谓代码优化是指对程序代码进行等价(指不改变程序的运行结果)变换。程序代码可以是中间代码(如四元式代码),也可以是目标代码。原创 2017-09-28 17:21:23 · 10772 阅读 · 0 评论 -
开源Json解析器的浅述
之前在做项目中,Json 这种数据转换格式经常用,为什么呢?我认为是 1、它的易用性,跨平台性,它是JS(JavaScript)的子集,是一种对象字面量。 2、它与XML都是树结构的语法树; 同样的XML,JSON表示,Json则相对简洁,XML相对冗余,当然也是互相不可替代的,根据具体需求选择合适才是完美的。做个原生的Json解析器是掌阅科技的大佬提出的一个问题,在之前没有相对的深入了解这个原创 2017-11-17 17:19:11 · 7931 阅读 · 0 评论 -
关于Cglib的浅述
前些天,和以为前辈聊起来动态代理,发现自己还是有些短板的,这里简单梳理一下。Java中说到动态代理并不陌生,在AOP框架、Spring中、ORM(Hibernate)中等许多情况都会用到;动态代理相对的就有静态代理,不过静态代理使用起来不尽人意,这里不在赘述。这里主要说一下Cglib。在之前的我的博客里浅述过关于JDK和Cglib的区别和各自的使用情景;但经过知识梳理、自省后,发现对Cgl...原创 2018-04-17 15:05:27 · 412 阅读 · 0 评论