摘要:
LRU 是 Least Recently Used 的缩写,即最近最少使用,是一种常用的页面置换算法,选择内存中最近最久未使用的页面予以淘汰。 可用的 NodeJS 库见 "node lru cache" 然怎么使用 JS 简单写一个?类似的题目见 "LeetCode 146 LRU 缓存机制" , 阅读全文
摘要:
在 "尤雨溪 聊聊 Vue.js 3.0 Beta 官方直播完整版 2020 04 21" 里我发现了一个有意思的工具,输入模板展示它编译优化的结果,网址在这里:https://vue next template explorer.netlify.app/ 留意图片中,注意动态的 的注释。识别 _o 阅读全文
摘要:
Node 10 参见 Node CHANGELOG_V10 vm: add dynamic import support。支持动态的 import。 但 ES 模块仍旧属于实验性质,并不能在代码中直接使用 import/export 除非开启实验性质的 flag,想使用还是得参见如何在 NodeJS 阅读全文
摘要:
摘录自 "nodejs真的是单线程吗?" Node.js 标准库,这部分是由 Javascript 编写的,即我们使用过程中直接能调用的 API。在源码中的 lib 目录下可以看到。 Node bindings,这一层是 Javascript 与底层 C/C++ 能够沟通的关键,前者通过 bindi 阅读全文
摘要:
Node 真的是单线程么 Node 只是主线程是单线程,主线程中的操作是同步阻塞的。但它把所有需要异步的操作扔给了IO线程池,主线程通过一定的事件轮询机制与IO线程池交互得到异步数据。 Node 是单线程,那它是如何处理高并发请求的? 依靠事件驱动。 1. 每个Node.js进程只有一个主线程在执行 阅读全文
摘要:
介绍 Koa 是一个新的 web 框架。通过利用 async 函数,Koa 帮你丢弃回调函数,并有力地增强错误处理。 Koa 并没有捆绑任何中间件, 而是提供了一套优雅的方法,帮助您快速而愉快地编写服务端应用程序。 Koa 的代码短小精悍,那解读一个基础的 demo const app = new 阅读全文
摘要:
express 先来一段 express 代码 // app.js var express = require('express'); var path = require('path'); var app = express(); // view engine setup app.set('vie 阅读全文
摘要:
我们都知道 Node 没法操作线程,但可以操作进程,一旦涉及主从模式的进程守护,或者是多机部署的需要,那么都可能碰上需要相互通信的场景,本篇就介绍几种常用方法。 Node 原生 IPC(Inter Process Communication,进程间通信)支持 最自然的方式,比上一种“正规”一些,具有 阅读全文
摘要:
什么是事件轮询 事件循环是 Node.js 处理非阻塞 I/O 操作的机制——尽管 JavaScript 是单线程处理的——当有可能的时候,它们会把操作转移到系统内核中去。 下面的图表显示了事件循环的概述以及操作顺序。 但是,如果你把这两个函数放入一个 I/O 循环内调用,setImmediate 阅读全文
摘要:
背景 在阿里云上看到我运行了一段时间的程序,发现 memory 一项基本是在稳步提升,就知道有内存泄漏的情况出现。如下图 近三日从 35% 升到 40%,缓慢而坚定的提升。 代码 排查此问题需要分析其堆内存快照,当然我们不能直接使用线上机器调试。不幸的是测服机器在内网,和阿里云联不通,alinode 阅读全文