Xinyuan Wang

Results 87 issues of Xinyuan Wang

## .gitignore 不生效的解决方案 ```js git rm -r --cached . git add . git commit -m "update .gitignore" ```

- [多个提高 Node.js 应用吞吐量的小优化技巧介绍](https://zhuanlan.zhihu.com/p/25276558)翻译自 InfoQ 英文站的 [node-micro-optimizations-javascript](https://www.infoq.com/articles/node-micro-optimizations-javascript) 一文,从属于笔者的[Web 前端入门与工程实践](https://github.com/wx-chevalier/Web-Frontend-Introduction-And-Engineering-Practices)。 # 多个提高 Node.js 应用吞吐量的小优化技巧介绍 ## 内容提点 - 尽可能地使用聚合 IO 操作,以批量写的方式来最小化系统调用的次数。 - 需要将发布的开销考虑进内,清除应用中不同的定时器。 - CPU 分析器能够给你提高一些有用信息,但是并不能完整地反馈整个流程。 - 谨慎使用 ECMAScript 高级语法,特别是你还未使用最新的 JavaScript 引擎或者类似于...

nodejs
性能优化

## 前言 最近用Egg作为底层框架开发项目,好奇其多进程模型的管理实现,于是学习了解了一些东西,顺便记录下来。文章如有错误, 请轻喷 ## 为什么需要多进程 伴随科技的发展, 现在的服务器基本上都是`多核cpu`的了。然而,Node是一个`单进程单线程`语言(对于开发者来说是单线程,实际上不是)。我们都知道,`cpu的调度单位是线程`,而基于Node的特性,那么我们每次只能利用一个cpu。这样不仅仅利用率极低,而且容错更是不能接受(出错时会崩溃整个程序)。所以,Node有了[cluster][]来协助我们充分利用服务器的资源。 `cluster工作原理` 关于cluster的工作原理推荐大家看[这篇文章][Link 1],这里简单总结一下: 1. 子进程的端口监听会被`hack`掉,而是统一由master的`内部TCP监听`,所以不会出现多个子进程监听同一端口而报错的现象。 2. `请求统一经过master的内部TCP`,TCP的请求处理逻辑中,会挑选一个worker进程向其`发送一个newconn内部消息,随消息发送客户端句柄`。(这里的挑选有两种方式,第一种是除Windows外所有平台的默认方法循环法,即由主进程负责监听端口,接收新连接后再将连接循环分发给工作进程。在分发中使用了一些内置技巧防止工作进程任务过载。第二种是主进程创建监听socket后发送给感兴趣的工作进程,由工作进程负责直接接收连接。) 3. worker进程收到句柄后,`创建客户端实例(net.socket)执行具体的业务逻辑`,然后返回。 如图: ![pic_9e7655f4.png](https://www.liangtengyu.com:9998/images/pic_9e7655f4.png) 图引用 [出处][Link 2] ## 多进程模型 先看一下[Egg官方文档][Egg]的进程模型 ```java +--------+ +-------+ | Master...

性能优化
项目部署与管理

## import * as xxx 与 import xxx name参数是“导入模块对象”的名称,它将用一种名称空间来引用导入模块的接口。export参数指定单个的命名导出,而import * as name语法导入所有导出接口,即导入模块整体。以下示例阐明该语法。 导入整个模块的内容 这将myModule插入当前作用域,其中包含来自位于/modules/my-module.js文件中导出的所有接口。 import * as myModule from '/modules/my-module.js'; 在这里,访问导出接口意味着使用模块名称(在本例为“myModule”)作为命名空间。例如,如果上面导入的模块包含一个接口doAllTheAmazingThings(),你可以这样调用: myModule.doAllTheAmazingThings();

nodejs

QPS: 每秒钟处理完请求的次数;注意这里是处理完。具体是指发出请求到服务器处理完成功返回结果。可以理解在server中有个counter,每处理一个请求加1,1秒后counter=QPS。 TPS:每秒钟处理完的事务次数,一般TPS是对整个系统来讲的。一个应用系统1s能完成多少事务处理,一个事务在分布式处理中,可能会对应多个请求,对于衡量单个接口服务的处理能力,用QPS比较多。 并发量:系统能同时处理的请求数 RT:响应时间,处理一次请求所需要的平均处理时间 计算关系: QPS = 并发量 / 平均响应时间 并发量 = QPS * 平均响应时间

MVVM = Model + ViewModel + View Model 用于数据逻辑 ViewModel 自动修改 View View 用于展示

redux = reducer + flux

nodejs

Vue3 vscode 调试工具 volar 亲测好用

概述 笔者学习node的路径,将知识进行整理并输出。 部分一:Node API (5 - 6双月) 聚焦在node层提供的核心能力,学习基础API的用法后,完成对应的一个service设计。 FS系统设计:Pastebin Buffer系统设计: Dropbox + 双工流 ? 网络系统设计:short URL + IM 异步API设计:Promise A plus + co 工程篇:打包工具 + cli实现 部分二:心法 OOD (7 -...