Oliver Liu

一个充满理想并付诸于行动中的码农,喜欢遨游在计算机世界里,励志于成为一名多财多亿的人

Latest Posts
nodeJS面试问题
c++ -> Libuv -> V8 -> JS nodejs 模块类型,有几种,他们之间有什么不同? 核心模块,在内建模块上层封装的js层接口。 内建模块,node内部原生的c++模块实现,这些模块调用了 Libuv 接口。 文件模块, 纯JS模块。 核心模块在启动进程时, 会被引入到内存中,以提高之后的调用效率。 为什么require可以不用声明而直接引用? 在Node中,每个模块都会被一个立即执行函数(IIFE)包裹着,在Node引入执行它们时,会传入一些参数 (function(exports, require, module, filename, dirname) { ... Read more
Mac big sur 闪退现象分析
苹果为了购买因特尔芯片的成本和统一全平台架构的目的(Iphone, ipad, mac),自研的ARM芯开始集成到Mac中使用, 从原来的 Intel 64 到 ARM64导致需要系统层软件向上兼容老应用程序的运行,也就是把 Intel64 转换成 符合 ARM-64 架构的指令集。 这个软件由一个 Transitive Corporation 公司为苹果提供动态转换技术,也就是最近发布的 苹果11系统中 Rosetta2 组件的实现。 动态转换技术全称为: “Dynamic birnary translation”, 旨在原体系的芯片架构上翻译成可以在目标架构上运行的代码。所以更新了 Big Sur 系统, 就相当于兼容了ARM架构,也就是自带了这个组件。(如果本身就是intel架构的老机器,默认是不会开启这个组件的)。 对跨平台软件的影响 由于新系统big sur 相较于 ... Read more
chromium多进程架构
此篇文章中所述的内容,未经过源码级的考核,像webpack一样,没有绝对的教材,对频繁改版的chromium也是如此,以下仅凭个人的一些思考,实践,参阅(Chromium官方文档),推导出来的, 所以,内容有可能并不完全正确。 此篇内容主要参考Webkit架构,早期的开源世界中,它被Apple创造出来,之后Google投入大量人力开发人员融入Webkit项目,熟悉webkit代码, 几年后,Google开发者们在这个项目中的提交量占据了一大半,成为了核心维护者。之后他们把Webkit fork 下来,为自己的多进程架构重构, 并更名为Blink(同webkit为浏览器内核), 为什么要fork下来,而不在原有的webkit上做多进程架构欧呢?主要有两个原因, webkit应用场景和google要发展的方向不匹配,webkit作为一个开源的浏览器内核,提供嵌入式接口(高达几百 ... Read more
什么时候使用 peerDependencies?
首先npm管理依赖的算法规则是,对于两个不同包的依赖的包的版本,采用这个这个包中增加 node_modules 然后作为独有的依赖引入。 所以这种情况下其实是引入了两套不同版本的包,但有一些情况其实这两个包是可以合在一起的,不必用两个增加编译工作的负担。 比如,如下一个例子说明 第一步,我们创建一个测试项目 md conflict-test cd conflict-test npm init -y 第二步我们在package.json的依赖中,添加两个包,分别是todd-a,todd-b. { "dependencies": { "todd-a": "^1.0.0", "todd-b": "^1.0.0" } } 那么todd-a 和 todd-b 这俩的依赖是不一样的,他们的依赖分别是 tod ... Read more
Relaunch application in nwjs
Nwjs has no lots of interfaces which could help us to use in our application, such as window-handler, network-proxy, relaunch, and so on... These functions would be important in some situations, and I exactly met the problem that cannot to relaunch my application in nwjs after consulted the document of nwjs many times. In the end when I want to give up it, I found a new method to approach i ... Read more