再谈Java GC

GC是影响JVM性能的重要因素,不同jvm厂商、版本实现了不同垃圾收集器和算法,各有优缺点。本文就jvm内存划分做进一步补充说明并聊聊各种常见的垃圾收集器,它们的基本算法和使用场景以及一些GC调优的方法。

理解并实现IoC与AOP

IoC(Inversion of Control)与AOP(Aspect Oriented Programming)是java web编程领域领的重要概念。java作为面向对象的强类型静态语言在编程时存在很多局限性,比如对象之间的复杂依赖关系处理,比如运行时获取修改代码meta信息等。本文就聊聊IoC与AOP是什么以及怎样实现。

JavaScript线程与异步语法进化

我们知道JavaScript运行环境通常都是单线程的。在浏览器中,JavaScript代码主要运行在主线程,也就是UI线程中,为避免阻塞页面,语言层面提供了异步执行的能力,在浏览器实现的时候会将这些异步任务放到特定的线程去执行如ajax,setTimeout等。同时库支持层面上JavaScript的异步语法也经历了几次重大变化。

JavaScript的面向对象与原型链

面向对象是一种常见的编程思想,Java、C++都非常卓越的实现了面向对象编程。对这些语言少有熟悉的同学都知道Java、C++中存在类型,实例这两个重要概念来描述面向对象的特性。但是JavaScript并没有特别清晰的类型与实例的概念,JavaScript通过原型链的方法实现面向对象编程的特性,本文就来聊聊相关知识与历史。

JavaScript中可能的一些坑

众所周知 JavaScript如今已广泛应用在Web编程领域,但它的诞生却是在 10 天之内,虽然操刀设计的大神很牛,但也难免留下了不少的后遗症,同时在应用领域为保证兼容很多问题也没有得到很好的解决,此时就要求开发者在程序开发的过程中注意避免错误。首先让人迷惑的就是JavaScript标准规范的命名,为了让JavaScript成为全球标准,几个公司联合ECMA(European Computer Manufacturers Association)组织定制了JavaScript语言的标准,被称为ECMAScript标准。由于JavaScript是网景的注册商标所以标准就以ECMAScript(简称ES)保留下来。

类的编译与加载及JVM内存划分

JVM(Java Virtual Machine)优化的已经很完善以至于大家都感觉不到他的存在。面对复杂并发业务通常架构上扩容加机器能够得到解决,但是到了一定阶段扩容仍然效果不佳的时候从jvm入手降低服务器内存、CPU使用是非常靠谱的选择。同时了解jvm有助于理解java应用的生命周期与运行环境,编写性能更好的代码与排查故障。

EOS nodeos启动过程

本文从源码的角度看 EOS 是怎样工作的,代码分析基于版本 59626f1e6,请读者自行获取,本文假设你对 EOS工作过程,C++ 等基础知识已经有一定了解。文中可能涉及错误请发邮件到 i@timqi.com 反馈。

Chrome架构4 - 交互处理

本系列文章从内部剖析了 Chrome 浏览器的进程、线程架构设计,各部原理等基础知识,梳理了浏览器是怎样将你的代码变成网站的,解开某个特定技术为什么可以提高性能的疑问。本文是这个系列的最后一篇,讲述了 Chome 浏览器怎样处理响应来自外部的事件并流畅交互的。

Chrome架构3 - 加载渲染

本系列文章从内部剖析了 Chrome 浏览器的进程、线程架构设计,各部原理等基础知识,梳理了浏览器是怎样将你的代码变成网站的,解开某个特定技术为什么可以提高性能的疑问。本文是这个系列的第三篇,讲述了 Chome 浏览器渲染器进程是如何处理页面文档、css、js等资源的。

Chrome架构2 - 导航过程

本系列文章从内部剖析了 Chrome 浏览器的进程、线程架构设计,各部原理等基础知识,梳理了浏览器是怎样将你的代码变成网站的,解开某个特定技术为什么可以提高性能的疑问。本文是这个系列的第二篇,讲述了 Chome 浏览器从您键入 URL,从 Internet 获取数据并开始展示页面前的过程中发生了什么。我们把这一过程称作 导航。