Node.js入门学习笔记

关于Node.js介绍,我们引用官网(http://nodejs.org/)的一段文字说明: Node.js is a platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices. Google Chrome浏览器基于V8的,它是一个开源的JavaScript引擎,能够编译和执行JavaScript代码,在执行速度上有很大的优势。使用Node.js能够很容易地构建快速、可扩展的网络应程序,它使用了事件驱动、非阻塞I/O模型实现,具有轻量、高效的特点,适合于构建运行在分布地设备之上的数据密集型实时应用程序。 下面通过参考各种资料,从各个方面,概括地总结一下Node.js,是我们对Node.js有一个直观的了解: 使用JavaScript运行于服务端的平台上,自然继承了JavaScript语言的一些特性; Node.js基于单线程、基于非阻塞I/O模型实现; 适合于数据密集型应用,不适用于计算密

JVM 分代GC策略分析

我们以Sun HotSpot VM来进行分析,首先应该知道,如果我们没有指定任何GC策略的时候,JVM默认使用的GC策略。Java虚拟机是按照分代的方式来回收垃圾空间,我们应该知道,垃圾回收主要是针对堆(Heap)内存进行分代回收,将对内存可以分成新生代(Young Generation)、年老代(Tenured Generation)和永久代(Permanent Generation)三个部分。 分代GC 分代GC包括如下三代: 新生代(Young Generation) 新生代有划分为Eden、From Survivor和To Survivor三个部分,他们对应的内存空间的大小比例为8:1:1,也就是,为对象分配内存的时候,首先使用Eden空间,经过GC后,没有被回收的会首先进入From Survivor区域,任何时候,都会保持一个Survivorq区域(From Survivor或To Survivor)完全空闲,也就是说新生代的内存利用率最大为90%。From Survivor和To Survivor两个区域会根据GC的实际情况,进行互换,将From Survivor区域中的对象全部复制到To Survivor区域中,或者反过来,将To Survivor区域中的对象全部复制到From Survivor区域中。 年老代(

Ubuntu系统编译安装配置PHP-5.4.7

编译安装PHP,需要依赖libxml2等软件包,首先需要下载这些软件包(地址见后面参考链接)。 下面是整个安装过程的说明: 安装libxml2 下载编译安装过程,如下所示: wget ftp://xmlsoft.org/libxml2/libxml2-2.9.0.tar.gz tar -xvzf libxml2-2.9.0.tar.gz cd libxml2-2.9.0/ sudo mkdir /usr/local/libxml2 sudo ./configure --prefix=/usr/local/libxml2 sudo make sudo make install 安装成功以后,可以查看目录/usr/local/libxml2下面的内容,如下所示: ls /usr/local/libxml2/ bin  include  lib  share libxml2已经安装成功。 安装zlib 下载编译安装过程,如下所示: wget http://zlib.net/zlib-1.2.7.tar.gz tar -xvzf zlib-1.2.7.tar.gz sudo mkdir /usr/local/zlib cd zlib-1.2.7/ sudo ./configure --prefix=/usr/local/zlib sudo make ssudo make install 安装libcurl 下载编译按装过程,如下所示: wget http://curl.haxx.se/download/curl-7.28.0.tar.gz tar -xvzf curl-7.28.0.tar.gz shirdrn@SYJ:~/programs$ cd c

使用JRegex抽取网页信息

当网络爬虫将网页下载到磁盘上以后,需要对这些网页中的内容进行抽取,为索引做准备。一个网页中的数据大部分是HTML标签,索引肯定不会去索引这些标签。也就是说,这种信息是没有用处的信息,需要在抽取过程中过滤掉。另外,一个网页中一般会存在广告信息、锚文本信息,还有一些我们不感兴趣的信息,都被视为垃圾信息,如果不加考虑这些内容,抽取出来的信息不仅占用存储空间,而且在索引以后,为终端用户提供检索服务,用户检会索到很多无用的垃圾信息,势必影响用户的体验。 这里,针对论坛,采用配置模板的方式来实现信息的抽取。使用的工具可以到http://jregex.sourceforge.net上下载,JRegex是一个基于Java的正则库,可以通过在正则模板中指定待抽取信息的变量,在抽取过程中会将抽取到的信息赋给该变量,从而得到感兴趣的信息。而且,JRegex库支持多级分组匹配。 为了直观,假设,有一个论坛的一个网页的源代码形如: <a id="anchor">标题</a> <cont> <author>a1</author> <time>2009</time