1. [译]Node.js垃圾回收与内存泄露的排查

    原文地址:https://blog.codeship.com/understanding-garbage-collection-in-node-js/ 阅读时间: 8 分钟 尽管总有一些Node.js(通常)性能方面的负面报道,这并不是说Node.js比其他技术更容易出现问题。我们需要清楚知道Node.js是怎么玩的。 虽然这项技术的学习曲线相当平坦,但是其内部的实现是相当复杂的,而且你必须要了解怎么规避一些陷阱。 如果一旦出现错误你需要知道怎么快速解决问题。 这篇文章我会提到Node.js的内存管理是怎么回事,怎么能追踪内存泄露问题。和其他平台语言不同(如php), Node.js程序是一种长期运行的线程。虽然这有很多用武之地,比如一次数据库链接之后所有的请求均可复用,但是这也会产生很多问题。 首先我们来搞清楚一些Node.js的基本问题。 Node.js是通过V8引擎控制C++程序的Javascript Google的V8引擎最开始适用于Chrome浏览器的,但是它也可以独立运行,Node.js能抱大腿就是因为它能独立运行。 V8的编译器编译js成本机代码然后运行,运行过程中V8负责按需要回收,释放内存。所以我们在说内存管理实际上是说V8的内存管理机制。 V8的内存设计 一个程序的运行可以用一些内存分配来表示。这些内存分配我们叫常驻内存,V8的内存结构设计和JVM很相似,它将内存分为如下几部分: 代码块…

    on node.js gc 内存溢出 垃圾回收

  2. Electron, node桌面应用之力

    缘起 electron 就是这个大名鼎鼎的项目燃起了nodejs 开发桌面应用的火苗。 这是个跨平台的桌面开发nodejs 实现,用的是Chromium 的内核 v8引擎包装成桌面app,这么有趣的东东 当然要上手一试。 历练 本来做了一个生成密码保存本地的cli mypass 就是个给自己用的,(公司每月要换密码不能和历史重复烦得很)。 代码写完了也用起来了,可是我意识到还是有不方便的地方,对于developer 来说也行感受不到,本来公司用的lastpass 已经有类似的功能, 可是我还是不太信任网络服务,所以想把他做成彻底的本地版本。 有了electron 我就可以尝试打包成不同的桌面app了,蛮有趣。 于是搞了升级版本 用electron 实现了一下, 截图如下: 其实写代码还好,基本就是nodejs + html + js 混用,electron 的入口程序设计的还算友好,掌握了Main Process 和 Renderer Process的概念之后就能写出相对复杂的程序了。 个人认为打包才是最复杂的。推荐的打包程序 electron-builder 比较好用,但是在gfw下还是要科学上网才能成功 build, 毕竟需要get…

    on nodejs app electron

  3. Redis配置文件详解

    Redis 配置文件中文解释 基于版本2.X 简介 redis是一款开源的、高性能的键-值存储(key-value store),和memcached类似,redis常被称作是一款key-value内存存储系统或者内存数据库,同时由于它支持丰富的数据结构,又被称为一种数据结构服务器(data structure server)。 配置步骤 编译安装完redis,它的配置文件在源码目录下 redis.conf ,将其拷贝到工作目录下即可使用。 redis.conf 常规配置 1 daemonize no 默认情况下,redis 不是在后台运行的,如果需要在后台运行,把该项的值更改为yes。 2 pidfile /var/run/redis.pid 当Redis 在后台运行的时候,Redis 默认会把pid 文件放在/var/run/redis.pid,你可以配置到其他地址。当运行多个redis…

    on redis 配置

  4. MEAN使用技巧-2

    接下来的几次更新会着重介绍gulp的使用因为本人也是学习不足之处请指出。 何为gulp gulp.js - the streaming build system, 官方解释是流构建系统,其实就是node.js的构建工具,配置比grunt简洁,功能不输grunt。 怎么搞? 先安装 //linux -g为全局安装在这里只说此一次 以后文章里面不会说了 sudo npm i -g gulp 如果只想用在一个项目里面使用 // -D开发者的依赖 npm i -D gulp 创建gulpfile var gulp = require('gulp'); gulp.task('default', function() { // place code for your default task here }); 运行 在gulpfile 存在的目录下运行 gulp…

    on gulp MEAN nodejs node.js

  5. Docker 构建开发环境

    Docker简介 实战 2.1 安装 2.1.1 unbuntu14.04 2.1.2 centos6 2.2 使用 2.2.1 基本概念 2.2.1.1镜像 2.2.1.2容器 2.2.2 常用命令 Docker简介     Docker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目。它基于 Google 公司推出的 Go…

    on docker Dockerfile