自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

tingya的专栏

扯淡与编程比翼双飞, 吹牛与泡妞不分上下

  • 博客(79)
  • 资源 (1)
  • 收藏
  • 关注

原创 Apache中的进程剖析(1)

//转载请注明来源:http://blog.csdn.net/tingya//版权声明://本书是《Apache源代码全景分析》的草稿部分,//读者可以自由浏览和打印//未经本文允许,不得以任何形式出现在盈利印刷品中,否则将追究法律责任!!!6.1 Apache进程概述对于大负载的服务器而言,系统内部的并发处理以及进程之间的通信处理非常的重要。良好的设计可以使服务器的效率和稳定性加倍提升。

2006-05-18 15:52:00 7815

原创 基于视觉的Web页面分页算法VIPS的实现源代码下载

本来由于尚未优化好,暂时不提供下载的,但是由于众多的user迫切希望获取,因此只能将这个不成熟的版本提供出来!希望大家帮忙改进!另外,该源代码实现并未严格遵循VIPS算法,它与VIPS算法存在的差异包括:1、 DOM结点提取算法没有采用微软的算法2、没有采用VIPS算法中的DoC概念3、采用的合并算法与VIPS算法不相同4、分割条的检测算法与VIPS算法相同具体的VIPS算法的修改我们在整理后会发

2006-04-28 10:09:00 12614 117

转载 常用手持设备的use-agent头信息

常见手机User-Agent:Log_Brand Log_module Log_UaArima Arima 2860 Profile/MIDP-2.0 Configuration/CLDC-1.1CECT A706 CECT A706CECT E818 CECT-E818/(2004.07.01)SW2.0.0/WAP1.2 Profile/MIDP-2.0 Configuration/CLDC-

2006-04-25 16:13:00 5746

原创 Apache源代码分析——命令表解析

转载著名来源: http://blog.csdn.net/tingya该文章主要对Apache中的命令表进行了介绍和分析 命令行参数处理 如果用户是通过命令行进行Apache启动,那么启动语法如下: Httpd [-d directory][-D parameter] [-f file] [-C directive] [-c directive] [-L] [-l] [-S] [-V] [-X

2006-04-24 11:00:00 5883

原创 Apache源代码分析——配置命令执行过程

转载请注名来源:http://blog.csdn.net/tingya该文章分析了Apache中的配置命令执行过程该部分是与前面的命令表的部分紧密关联的,因此阅读这部分请先阅读前面的命令表分析。 //////////////////////////////////////////////////////////////////////////// static const char *invo

2006-04-24 10:59:00 4375

原创 Apache源代码分析——模块的加载

转载请著名来源:http://blog.csdn.net/tingya本文分析了Apache中关于模块的加载过程阅读本文之前,请先阅读Apache源代码分析——关于模块结构的几个重要概念一文 /////////////////////////////////////////////////////////////////////////////////////// 在了解了上面的四个重

2006-04-24 10:58:00 8521 4

原创 Apache源代码分析——关于模块结构的几个重要概念

    转载请注明来源:http://blog.csdn.net/tingya本文分析了Apache中关于模块的几个重要的概念/////////////////////////////////////////////////////////////////////////////////////// 关于模块的几个重要的全局变量 理解Apache模块的概念之前我们首先必须弄清楚apache

2006-04-24 10:57:00 8128 4

原创 Apache APR可移植运行库简介(4)

转载请注明来源:http://blog.csdn.net/tingya1.5.3错误处理大型的系统程序的错误处理是十分重要的,APR作为一个通用库接口集合详细的说明了使用APR时如何进行错误处理。1.5.3.1 错误码定义错误处理的第一步就是定义返回码,包括“错误码和状态码分类”。APR的函数大部分都返回int类型作为返回码的,不过为了更明确易懂,APR在apr_errno.h

2006-04-15 09:52:00 6431 5

原创 Apache APR可移植运行库简介(3)

转载请注明来源:http://blog.csdn.net/tingya1.4 应用APR我们首先make install一下,比如我们在Makefile中指定prefix=$(APR)/dist,则make install后,在$(APR)/dist下会发现4个子目录,分别为bin、lib、include和build,其中我们感兴趣的只有include和lib。下面是一个APR app的例子p

2006-04-15 09:50:00 5930 2

原创 Apache APR可移植运行库简介(2)

转载请注明来源:http://blog.csdn.net/tingya1.3 APR构建 1.3.1获取APR编译APR的第一个步骤就是获取APR开发包。通常情况下,你可以到APR的官方网站http://apr.apache.org/download.cgi去下载。一般情况下,APR开发包很容易理解为仅仅是一个开发包,不过事实上并不是。目前,完整的APR实际上包含了三个开发包:apr、

2006-04-15 09:47:00 9324 5

原创 Apache APR可移植运行库简介(1)

转载请注明来源:http://blog.csdn.net/tingya1.1 何为APR?APR(Apache portable Run-time libraries,Apache可移植运行库)的目的如其名称一样,主要为上层的应用程序提供一个可以跨越多操作系统平台使用的底层支持接口库。在早期的Apache版本中,应用程序本身必须能够处理各种具体操作系统平台的细节,并针对不同的平台调用不同的处理

2006-04-15 09:41:00 11847 9

转载 UDT协议-基于UDP的可靠数据传输协议

UDT协议-基于UDP的可靠数据传输协议1.   介绍    随着网络带宽时延产品(BDP)的增加,通常的TCP协议开始变的低效。这是因为它的AIMD(additive increase multiplicative decrease)算法彻底减少了TCP拥塞窗口,但不能快速的恢复可用带宽。理论上的流量分析表明TCP在BDP增加到很高的时候比较容易受包损失攻击。另外,继承自TCP拥塞控

2006-04-05 09:29:00 3877 2

原创 手持设备访问互联网策略综述

    对于手持设备访问Web网络,目前存在多种不同的策略,这些策略从整体上可以划分为两种:内容处理策略和访问模式策略。内容处理策略可以细分为内容定制和内容转换,前者通过为现有的Web页面生成新版本的页面从而适合手持终端访问,而内容转换则通过转换既有的Web页面,使之适合于手持设备访问;而访问模式策略可以细分为客户端处理模式和服务器端处理模式。客户端处理模式主要致力于通过类似于PC的浏览器策略实现

2006-03-19 09:20:00 3130 3

原创 Apache中的哈希表剖析(3)

转载请注明来源:http://blog.csdn.net/tingya3.4.5哈希表合并在Apache中经常需要将两个哈希表合并为一个新的哈希表,为此APR中提供了专门的哈希合并函数apr_hash_merge,该函数定义如下:APR_DECLARE(apr_hash_t *) apr_hash_merge(apr_pool_t *p,                  

2006-03-16 14:04:00 3984 2

原创 Apache中的哈希表剖析(2)

转载请注明来源:http://blog.csdn.net/tingya3.4.3数据插入和获取    对于哈希表而言,一个重要的任务就是插入key/value数据以及根据键值获取相应的值。APR中定义了函数apr_hash_set和apr_hash_get分别实现上面的功能。首先我们来看apr_hash_get函数,该函数需要三个参数,分别用以描述操作的哈希表,键值以及键的长度。 

2006-03-05 10:46:00 4447

原创 Apache中的哈希表剖析(1)

转载请注明来源:http://blog.csdn.net/tingya3.4 哈希表3.4.1哈希表概述    作为线性数据结构,与前面所说的表格和队列等相比,哈希表无疑是查找速度比较快的一种。APR中较好的支持哈希表。APR中哈希表在文件apr_hash.h和apr_hash.c中实现。其数据结构定义如下:    struct apr_hash_t {–        apr

2006-03-05 10:35:00 7884 2

转载 VIPS算法对搜索引擎的意义[转载]

                                       VIPS算法对搜索引擎的意义[转载]基于VIPS(视觉式版面切割算法)建立链接结构指望单靠开展链接数量和链接文字来推广链接活动的日子已经屈指可数。勿容置疑,PageRank和Hilltop算法体系中所蕴涵的链接广泛度理论仍占据相当重要性,但为了进一步提高搜索结果对用户查询条件的相关性,同时也为了巩固排名算法对作弊技术

2006-02-18 14:49:00 7582

原创 关于VIPS算法的实现

微软并没有给出VIPS算法的实现,仅仅给出了一个演示程序。而且,目前而言,实现是基于IE,不具有移植性,因此目前我正在着手实现VIPS算法,不过是用C#完成。过段时间会将实现代码配套放上来!另外,附问,如果在Blog中要尚在附件,该怎么处理?

2006-02-18 13:40:00 7757 57

翻译 VIPS:基于视觉的页面分割算法[微软下一代搜索引擎核心分页算法]

转载请注明来源: ,http://blog.csdn.net/tingya  谢谢合作原文出处:http://www.ews.uiuc.edu/~dengcai2/tr-2003-79.pdfVIPS:基于视觉的Web页面分页算法1.问题的提出目前,随着互联网的高速发展,Web已经成为这个世界上最大的信息来源。Web 作为信息技术的载体已成为人们重要的工作、学习、生活、娱乐工具。W

2006-02-18 12:26:00 23880 18

原创 Apache中的表格实现剖析(2)

转载请注明来源:http://blog.csdn.net/tingya3.2.3表格元素查找    表格元素查找是表格的一个非常重要的功能。目前存在很多的线性表查找算法,最基本的无非三种:顺序查找,二分查找以及哈希查找。相对而言,顺序查找是最简单也是最容易实现,但是其通常在插入数据时候较为快捷,而查找的时候则就相对较慢。二分查找是一个较快的查找方法,但是其前提必须数据进行排序,因此排序使得

2006-02-17 14:21:00 3155

原创 Apache中的表格实现剖析(1)

转载请注明来源:http://blog.csdn.net/tingya3.2表格(TABLE)3.2.1表格概述    尽管apr_array_header_t数组已经可以完成大部分的任务,但是对于Apache而言,apr_array_header_t更倾向于内部数据结构,它通常作为其余的线性数据结构的实现基础,比如表格、队列以及哈希表。表格是Apache中用的最频繁的数据结构,比如H

2006-02-17 14:18:00 3815 2

原创 Apache中的挂钩剖析(3)

5.5.7 可选挂钩与标准挂钩相比,可选挂钩基本上没有太大的差异,唯一的区别就在于可选挂钩不一定需要被实现——这看起来令人迷惑的。不过你很快就会明白了。考虑一下,如果某个挂钩Hook_A是声明在一个可选模块中,那么正常情况下该模块没有被加载。如此此时某个模块想使用挂钩Hook_A,那么会发生什么情况呢。对于标准模块,Apache可能根本就无法进行编译。而可选挂钩则可以解决这种问题。对于可选挂钩

2006-02-14 10:09:00 4262

原创 Apache中的挂钩剖析(2)

5.5.5 挂钩函数(APR_IMPLEMENT_EXTERNAL_HOOK_BASE)从宏的名字我们就可以大体看出该宏实际上是实现了具体的挂钩注册函数,如果将其展开后我们会更加一目了然。该宏的定义也是冗长的很,如下所示:#define APR_IMPLEMENT_EXTERNAL_HOOK_BASE(ns,link,name) /link##_DECLARE(void) ns##_h

2006-02-14 09:51:00 4022 4

原创 Apache中的挂钩剖析(1)

5.5 挂钩(HOOK)5.5.1 为什么引入挂钩在Apache1.3版本中,对HTTP请求的处理包括若干个固定阶段,比如地址转换阶段、身份确认阶段、身份认证阶段、权限确认阶段、MIME类型识别阶段等等,这也意味着Apache1.3中的挂钩数目是有限的,固定的。这个反映在模块结构中就是针对每个HOOK都对应一个函数指针。比如如果需要检查用户的身份是否合法则只需要调用ap_check_use

2006-02-14 09:48:00 5310 1

原创 apache中的文件与目录(2)

4.4 打开文件文件打开应该是使用的最多的文件操作了,任何文件在使用之前都必须首先打开。ANSI C标准库和Unix系统库函数都提供对“打开文件”这个操作语义的支持。他们提供的接口很相似,参数一般都为“文件名+打开标志位+权限标志位”,Apache中提供了apr_file_open函数来支持文件打开操作,该函数只是在原有的标准库的基础上进行了少许的封装。apr_file_open无法忽略习惯的

2006-02-12 13:34:00 4397 3

原创 Apache中的文件与目录(1)

4.1 文件概述文件I/O在Unix下占据着非常重要的地位,曾有一句经典语句绝对可以说明file在Unix下的重要性, "In UNIX, everything is a file",APR就是本着这个思想对Unix文件I/O进行了再一次的抽象封装,以提供更为强大和友善的文件I/O接口。APR File I/O源代码的位置在$(APR_HOME)/file_io目录下针对不同类型的操作系统

2006-02-12 13:23:00 7085

原创 最近准备分析APR中线性表

APR中的线性表,包括表格,环形链表,哈西表,队列四种,这四种都是建立在数组的基础之上。估计年前是不能发上来了,因为要过年回家了。不过年后应该很快就搞定。论文忙的紧,没有太多时间啊!!

2006-01-24 20:03:00 2938 2

原创 Apache数组分析

                           3.1数组3.1.1数组概述        数组是Apache中最经常也是最普通的数据结构,尽管C语言中已经提供了一定的数组功能,但是C语言数组运用到Apache中还存在下面的一些问题:        (1)、C语言中的数组在定义的时候就必须确定维数目,一旦确定,其长度就不可更改。但是Apache中很多情况并不知道数组中能够保存的最

2006-01-19 10:30:00 4201 3

原创 Apache中的环形链表

                    5.1环型链表概述        Apache中很多地方都使用到了环形链表的数据结构,比如存储段组中就是使用环形链表保存所有的存储段数据。为了能够简化对该环形链表的操作,Apache中定义了一系列的宏来方便对链表的操作。因此在继续分析存储段之间的关系之前,我们首先来看一下Apache中环形结构的实现。Apache中环形结构的实现采用了大量的宏,其实现

2006-01-18 09:52:00 6477 7

原创 Apache内存池内幕(7)

2.4.5内存池的销毁由于Apache中所有的内存都来自内存池,因此当内存池被销毁的时候,所有从内存池中分配的空间都将受到直接的影响——被释放。但是不同的数据类型可能导致不同的释放结果,目前Apache中支持三种不同的数据类型的释放:1)、普通的字符串数据类型这类数据类型是最简单的数据类型,对其释放可以直接调用free而不需要进行任何的多余的操作2)、带有析构功能的数据类型这类

2006-01-14 17:37:00 5935 9

原创 Apache内存池内幕(6)

2.4.4内存池的内存分配    从内存池中分配内存通过两个函数实现:apr_pcalloc和apr_palloc,这两个函数唯一的区别就是apr_pcalloc分配后的内存全部自动清零,而apr_palloc则省去了这一步的工作。apr_palloc的函数原型如下所示:APR_DECLARE (void *) apr_palloc (apr_pool_t *pool, apr_siz

2006-01-14 17:32:00 6265 5

原创 Apache内存池内幕(5)

2.4.3内存池的创建勿庸置疑,内存池的创建是内存池的核心操作之一。内存池创建函数的原型如下所示:APR_DECLARE(apr_status_t) apr_pool_create_ex(apr_pool_t **newpool,                                             apr_pool_t *parent,             

2006-01-14 17:25:00 6144

原创 Apache内存池内幕(4)

2.4 内存池2.4.1内存池概述在了解了内存分配子的概念之后,我们其实已经了解了Apache中内存分配的细节了。不过Apache中内存的层次结构关系则是由内存池负责组织,其数据结构apr_pool_t定义在apr_pools.c中,定义如下:struct apr_pool_t {    apr_pool_t           *parent;    apr_pool_t  

2005-12-23 09:32:00 7114 5

原创 Apache内存池内幕(3)

2.3.3分配子内存分配使用分配子分配内存是最终的目的。Apache对外提供的使用分配子分配内存的函数是apr_allocator_alloc,然而实际在内部,该接口函数调用的则是allocator_alloc。allocator_alloc函数原型声明如下:apr_memnode_t *allocator_alloc(apr_allocator_t *allocator, apr_s

2005-12-23 09:24:00 8400 18

原创 Apache内存池内幕(2)

2.3 内存池分配子allocator2.3.1分配子概述尽管我们可以通过malloc函数直接分配apr_memnode_t类型的结点,不过Apache中并不推荐这种做法。事实上Apache中的大部分的内存的分配都是由内存分配子allocator完成的。它隐藏了内部的实际的分配细节,对外提供了几个简单的接口供内存池函数调用。内存分配子属于内部数据结构,外部程序不能直接调用。内存分配子(以后

2005-12-19 17:45:00 9718 10

原创 Apache内存池内幕(1)

对于APR中的所有的对象中,内存池对象应该是其余对象内存分配的基础,不仅是APR中的对象,而且对于整个Apache中的大部分对象的内存都是从内存池中进行分配的,因此我们将把内存池作为整个APR的基础。2.1 内存池概述在C语言中,内存管理的问题臭名昭著,一直是开发人员最头疼的问题。对于小型程序而言,少许的内存问题,比如内存泄露可能还能忍受,但是对于Apache这种大负载量的服务器而言,内存

2005-12-08 18:30:00 21127 34

原创 C++事件(Event)机制的实现一例(转载)

C++事件(Event)机制的实现一例[源代码下载链接已修复] 作者:袁晓辉([email protected]) 声明: 1、 本文为作者原创,如需转载请保持本文的完整性并注明出自 www.farproc.com 和 http://blog.csdn.net/uoyevoli. 2、 本文附件中的源代码你可以免费使用并无需注明出处。 用C++实现事件机制我以前写过一个小例子,但不是很完善,比如E

2005-11-23 09:51:00 3871

原创 Linux下的线程池源代码请到下面的链接下载

http://www.namipan.com/d/linuxpool.rar/fcdea853d6fe67c7015f89ca8c6faca0778a86278d600c00

2005-04-23 22:41:00 5613 2

原创 Linux下通用线程池的构建

<!--yiqifa_sid=c5690eaa879f92bf;yiqifa_pid=39042;yiqifa_wid=96009;yiqifa_vid=657;yiqifa_cid=4368;yiqifa_lid=16957;yiqifa_w=760;yiqifa_h=90;yiqifa_euid=10;// -->

2004-12-23 13:58:00 24342 53

directshow教程

directshow教程

2008-02-01

空空如也

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

TA关注的人

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