自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

iceshirley的专栏

千里之行,始于足下

  • 博客(37)
  • 收藏
  • 关注

原创 谈谈操作符重载

重载操作符使得程序员能够为类类型的操作数定义预定义的操作符版本。

2010-07-19 21:15:00 783

原创 类的析构函数

类的析构函数基本知识点

2010-07-12 15:45:00 3205

原创 类的构造函数

本节叙述了类的构造函数方面的一些基本知识,这些基础都需要牢记于心的。

2010-07-08 09:46:00 2346

转载 为何要考虑字节对齐?

本文讲述计算机为何采用字节对齐的原因

2010-06-24 14:08:00 1212

原创 C++何时要使用成员初始化列表

本文阐述了C++中那些情况要使用成员初始化列表。

2010-06-23 11:05:00 2959

原创 封底计算与费米问题

    封底计算,英文为back-of-the-envelope calculations (BotEC),这个术语由物理学家恩里科·费米创造,指用简单到可以在手边随便的什么小纸片——比如信封的背面上——进行的计算,对复杂的方程作同一数量级内的近似求解。    

2010-06-12 17:00:00 5131

原创 拷贝构造函数调用的时机

拷贝函数何时会被调用呢?最明显的就是用一个类对象初始化另外一个对象的时候比如X a=X(); 这句语义上就是先创建X()临时对象,再调用X的拷贝构造函数“初始化”a, 这只是语义上的,编译器完全可能优化掉临时对象 。注意区分初始化和赋值(调用assignment operator)第二种情况是函数按值传参数的时候,包括指针在内都是对原有的值的拷贝 。这种情况容易理解。第三种情况是一个对象以值传递的

2009-05-05 18:58:00 3446

原创 Linux IO调度层分析-3

 我们知道,每个块设备程序都有一个请求队列与之关联。在块设备初始化时,会分配并初始化请求队列。在这个时候,我们便可以为块设备驱动程序指定特定的IO调度算法,默认情况下是强制使用系统默认的调度算法。熟悉块设备驱动的人知道,内核是通过generic_make_request函数来不断转发bio,直到该bio被挂载到物理设备的请求队列中。generic_make_request函数会获取bio所

2009-03-17 11:49:00 5132

原创 Linux IO调度层分析-2

 Deadline算法维护5个队列,除了请求队列以外,算法还使用了四个队列。其中两个排序队列分别包含读请求和写请求,这个队列是按照起始扇区数来排序的。另外两个最后期限队列包含相同的读和写请求,只不过它们是根据其“最后期限”排序的。这两个队列的目的是为了避免请求饿死。因为电梯策略优先处理与上一个处理请求最近的请求,因而就会对摸个请求忽略很长一段时间,这时就会发生这个情况。请求的最后期限本质上就是

2009-03-17 11:47:00 4389

原创 Linux IO调度层分析-1

 Linux IO调度程序是块设备I/O子系统的主要组件,它介于通用块层和块设备驱动程序之间,所图2-1所示。当Linux内核组件要读写一些数据时,并不是请求一发出,内核便立即执行该请求,而是将其推迟执行。延迟的设定是块设备性能的关键机制!当传输一个新数据块时,内核检查能否通过扩展前一个一直处于等待状态的请求而满足新请求。  图 IO调度层所在系统中的位置       在2.6

2009-03-17 11:35:00 7921

原创 MD模块之处理读写过程分析-4

MD在处理读写错误时是不一样的。写数据发生错误时处理较简单,读发生错误时会比较麻烦,它会把读不出来的数据通过计算出来,然后在重新写回磁盘上。首先先看看如何处理写错误的。1、写数据时发生错误     如果写发生错误,那么回调函数raid5_end_write_request()中bio的BIO_UPTODATE位无效,调用md_error函数将相应的rdev置为Faulty,清除掉In_sy

2009-03-12 10:07:00 2514 1

原创 MD模块之处理读写过程分析-3

这节我们来分析神奇而又NB的handle_stripe,2.6.21版本的处理raid5和raid6分别用handle_stripe5和handle_stripe6这两个函数,我们这里主要说handle_stripe5,handle_stripe6和handle_stripe5其实差不多,只要你理解raid6的原理并理解了handle_stripe5,那么handle_stripe6自然便明白了。

2009-01-22 10:43:00 3490 4

原创 MD模块之处理读写过程分析-2

这一节讲述raid5模块中处理读写流程。这个过程很复杂,最关键的函数就是handle_stripe,处理一次读或写都会多次调用这个函数才能完成。当然,这个函数也是raid5模块的一个核心函数,他还负责同步,重建,以及扩展的实现。在分析之前,我们需要准备一些预备知识:一、条带:我们知道,raid5是以条带为基本单位来存取数据的。如下图所示:raid5还有其它中数据分布方式,这里只列出一种

2009-01-21 16:03:00 4207 1

原创 MD模块之处理读写过程分析-1

       md可以说是一个虚拟的设备驱动层,它属于块设备驱动,拥有块设备驱动的特点。所以,他实现了块设备操作接口 static struct block_device_operations md_fops ={ .owner = THIS_MODULE, .open = md_open, .release = md_release, .ioctl = md_i

2009-01-20 10:18:00 4343 1

原创 08年工作感受

      时光飞逝,从步入工作开始到现在已经快一年了,在这近一年的工作学习中,感觉自己收获还是不少的。从一个Linux驱动方面的门外汉,变成了初级学习者,学习了linux内核以及驱动方面的相关知识,把LDD3看了几遍,阅读了linux内核中MD模块,参与了项目的设计-》开发-》调试-》验收过程。一路走来,有困难会与你作对,也有快乐围绕在你身边。不管怎样发生,我们要有一个健康的心态去面对。  

2009-01-20 09:34:00 1334 2

原创 使用emacs作为编辑环境

        众所周知,在linux下做开发离不开两个常用的编辑器---vi和emacs。vi我用的不多,不好做评价。emacs功能非常强大,扩展能力强。网上有很多插件,可以丰富你的emacs功能。开始使用emacs会觉得很难用,呵呵,一般nb的东西都是这样。。。。如果你上手了,那么你就会体验到它强大的功能了。下面就来讲讲emacs环境的配置。        配置emacs主要就是安装插件,

2008-08-29 10:37:00 1872

原创 工作了,又开始了一段新的探索

毕业了,走上了工作岗位,从事了磁盘阵列方面的软件开发,涉及到了linux驱动以及内核方面的知识。以前在学校的时候觉得内核和驱动好难,看了一段时间放弃了。没想工作了又干起来这到我和这东西还真有缘,没办法,不像在学校里那样说不干就不干,只好硬着头皮慢慢摸索。到现在看了MD和raid5已经快2个月了,raid5看的基本差不多了,MD还需要进一步研究。在这个过程中我要感谢knightraincn,在我看M

2008-08-08 11:52:00 986

原创 函数返回局部地址的问题

当我们的函数返回一个局部地址时,编译器通常会发出一条警告“warning:address of local variable XXXXX returnd”。例如:char * func()...{    char s[200];    return s;}由于s在栈上分配的,其声明周期随这函数的结束而结束,从而错误操作内存。解决方法1、将s声明为static。2、在函数内动态申

2008-05-09 11:51:00 658

原创 c/c++函数间动态内存传递问题

我们经常能遇到这样一种问题,既是声明一个指针,然后想在相关的函数中对其进行分配空间。这样问题如果操作不当,不仅造成内存泄露,而且得不到相应的结果。先看以下例子void allocMemory(char *p)...{    p=(char *)malloc(sizeof(char)*128);}int main()...{    char *s=NULL;    allocMemory(s

2008-05-09 11:19:00 878

原创 c&c++函数调用的一个区别

        我们知道,在c语言中,函数的名字是全局可见的。举个例子来说,如果我们在fun.c中引用fun1.c中的一个函数,例如fun1(),哪么,在fun.c中无需声明fun1()便可以直接引用它。代码如下:fun.h文件#ifndef _FUN_H_#define _FUN_H_#includestdio.h>#endiffun.c文件#inlucde"fun.

2008-05-08 10:51:00 1124 2

原创 java1.4中的新I/O:存储器映射文件

 在jdk1.4种,sun引入了一种新I/O,目的是提升速度。实现的机制更接近操作系统操作i/o的机制:缓冲器和通道。旧的I/O 已经之用新的nio包重新实现了。速度的提高在文件I/O和网络I/O都发生。在nio这个包中,我最高兴得是看到的存储器映射文件MappedByteBuffer. 他允许我们创建和修改那些太大而不能读入内存的文件。有了存储器映射文件,我就便可以假设整个文件都放在内存中。 映

2007-09-06 00:05:00 1100

原创 weka中Saving and loading Trained models

最近使用weka的一些分类器训练了一些样本,样本集很小,时间也就短,如果样本集很大,训练时间长的话,不可能每次都训练一次,于是便想把训练好的模型保存到硬盘上。做了个实验,已通过。训练集使用的weka自带的数据集weather.nominal.arff,分类算法使用的svm。使用序列化的方式将建立好的模型保存到文件名为svm.model中。package spider.classific

2007-07-17 02:02:00 7689 1

原创 learn to crawl:比较分类模式

        基于分类器的聚焦爬虫 ,是主体爬虫的一个热点研究方向,主流的分类器有naive bayes classification,neural network,support vector machine,svm是90年代出现的名词,发展也很迅速,其优点有很多,主要是准确率高,训练时间短,可以说,svm的出现,几乎取代了neural network.那么,到底分类器是如何引导crawler

2007-06-23 02:24:00 1810

原创 聚焦爬虫的工作原理

聚焦爬虫的工作流程比较复杂,需要根据一定的网页分析算法过滤与主题无关的网页,保存有用的连接并且添加到等待抓取得url对列中,并根据一定的搜索策略从等待队列中选择下一步要抓取的连接。重复着一个过程,直到满足一定条件为止。主要解决问题有:对抓取目标的描述和定义。对网页的分析及过滤,对url的搜索策略。网页分析算法:一、基于网络拓扑结构的算法 分析算法简单,主题度较低。1、基于网页粒度的分析

2007-06-03 21:33:00 8827 3

转载 非阻塞套接字(Nonblocking Sockets) 概述

非阻塞套接字(Nonblocking sockets),自J2SE 1.4版引入,它允许网络通信在应用程序和没有阻塞的进程中使用套接字。在这篇文章中,将详细介绍什么是Nonblocking sockets,怎样工作及其用途。由于JSR 51的面世,从Java 1.4起,程序员便能用一组新的API来进行I/O操作。自2000年一月的Java 1.4 beta版,程序员便可以使用JSR 51了。在Ja

2007-04-16 19:45:00 1423

原创 Linux下配置java tomcat

一 下载JDK首先从su n 网站上下载 jdk-1_5_0_11-linux-i586.bin,之后解压到/usr/local/目录下 文件名为 jdk1.5.0_11将tomcat解压放到/usr/local/tomcat-5.5.2.3二 配置环境 制作javac和java的静态连接,以代替gcj#cd /usr/bin#ln -s -f /usr/local/jdk1.5.0_11/jre

2007-04-12 10:16:00 6636

原创 Lucene2.0中使用基于词典的中文分词器建立索引

 前一阵的分词器写好了,想用它建立索引,下面是具体代码package org.iceshirley.index;import java.sql.*;import java.io.*;import org.apache.lucene.index.*;import org.apache.lucene.store.*;import org.apache.lucene.document.*;i

2007-01-09 16:12:00 3092

原创 逆向最大区配算法

一、定义逆向mm算法:假设词典里面中最长的词条所包含的字数为L,则从待分析的字符串中取出L个词,比较词典,如果不存在,则去掉最后一个字,在与词典比较,如此反复循环。直到满足条件为止。二、实现过程构造一个MMChineseAnalyzer类,继承org.apache.lucene.analysis.Analyzer,需要实现public TokenStream tokenStream(S

2007-01-06 14:31:00 1053

原创 使用swing自带的html解析器来解析html

使用java自带的swing解析html,用起来简单,速度也很快。首先要导入javax.swing.text.*和javax.swing.text.html.*两个包。然后定义一个parser的类,继承了javax.swing.text.html.HTMLEditorKit.ParserCallback这个类,在javax.swing.text.html.HTMLEditorKit.ParserC

2006-12-26 19:05:00 7785 3

转载 java正则表达式

现在JDK1.4里终于有了自己的正则表达式API包,JAVA程序员可以免去找第三方提供的正则表达式库的周折了,我们现在就马上来了解一下这个SUN提供的迟来恩物- -对我来说确实如此。 1.简介:  java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包。 它包括两个类:Pattern和Matcher Pattern 一个Pattern是一个正则表达式经编译后的表

2006-12-20 17:18:00 3368 1

原创 utf8网页的问题

在myeclipse中建立java项目,目的看看我那个爬虫乱麻现象的原因;在数据库中找到乱麻的数据项,然后再ie中输入其url,发现网页的编码是utf-8的格式bot包中http类有个getbody方法,作用是得到当前网页的源文件,http类通过send方法发送请求,看看下http类的原代码,发现getbody有个重载函数,参数为编码格式。之后输出getbody("utf-8")发现乱麻问

2006-12-20 16:29:00 1810

原创 加入网页评估算法

面向主题的爬虫设计,很重要的一步就是评估算法.   对于给定的关键字集合及其权重,考虑某个网页的相关度可以使用向量空间模型来分析。关键字权值的集合,我们用向量a来表示,其中 a=(a1,a2,...an) n为关键字个数对于每个关键字,统计其在一个网页中出现的次数,向量x=(x1,x2,...,xn)来代表频率比,如果关键字i出现的次数最高,则将起频率比xi设为1,对于其它的关键字j,j不

2006-12-08 14:19:00 1757

原创 增强bot.jar包中htmlpage类

最近使用在sourceforce上html的分析包,觉得有些麻烦,后来把bot1.4包的htmlpage的源代码看了看,发现是用swing来解析html的,但是这个类仅仅实现了发现form link image,并没有实现太多的功能,出于研究目的,我增加一些新内容。1:使bot中发现link更精确,1.4版本中 看过源代码之后发现,htmlpage类把html中所有的href标签 都考虑,这样

2006-12-05 13:14:00 2329 1

原创 中科院分词包ICTCLAS

在eclipse里面调用这个包,需要在创建项目的时候选择src和bin这样的结构,否则会出错在着 默认情况下ictclas的构造函数是private的,如果要使用它,要改成publicictclas构造函数默认情况下 init(0,2)这样下来的结果是 每个分词之后带有词性,词性说明可以在它的那个网站上下载。 我不想显示词性,又看看api手册,也没结果,后来试这把init中第2个参数改成0

2006-12-05 12:49:00 2322 1

原创 Analysis包中的源码详解

 Analyzer.java 上文已经讲过。CharTokenizer.java 此类为简单一个抽象类,用来对基于字符的进行简单分词(tokenizer)LetterTokenizer.java两个非字符之间的字符串定义为token(举例来说英文单词由空白隔开,那个两个空白之间的字符串即被定义为一个token。备注:对于绝大多数欧洲语言来说,这个类工作效能很好。当时对于不用空白符分割的

2006-12-01 17:50:00 880

原创 网页主题相关度计算

 

2006-11-29 13:51:00 2123

原创 自己用LUCENE建立索引

  在spider搜索的网页基础上作的,依然连接mysql数据库class LinkToDb ...{ protected Connection con; protected PreparedStatement preCount; protected PreparedStatement preSelect; LinkToDb(String driver,String sqlurl)..

2006-11-21 14:50:00 1031

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除