自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

whinah的专栏

terark.com可检索压缩技术作者。致力于让数据更小,访问更快。

  • 博客(11)
  • 资源 (8)
  • 收藏
  • 关注

原创 使用" 参数化基类" 和" 成员函数指针" 模拟实现虚函数

// 使用" 参数化基类" 和" 成员函数指针" 模拟实现虚函数。#include "stdafx.h" /*    使用 "参数化基类 "和 "成员函数指针 "模拟实现虚函数。     可能大家都以为只有疯子才会这么干,好好的虚函数干吗不用,而偏要拐弯抹角地     搞得这么复杂,但有时候这可能是最好地选择。举个例子吧,我写 Windows PE 文件     加壳程序的时候,遇到一个问题:  

2005-11-25 19:22:00 1158

原创 stl::set 的一个缺陷

stl::set 的一个缺陷 什么都好,就一点不好:不能仅仅通过 key去查找元素。如 : #include set >struct my_struct{    int key;    int value1;    int value2;//……..…. //……     explicit my_struct(int key_) // explicit 禁止将 int 悄悄转化为 my_struc

2005-11-09 23:09:00 1861 2

原创 搞 Java 也有一段时间了

搞 Java 也有一段时间了。Java 现在也支持 GP 了。但是感觉 Java 好像总是那么那么的。可能是 C++ 用惯了。但是 C++ 的表达能力是在是比 Java 强得多。MS 也推出了 C++/CLI,简单得看了一下,那简直就是我梦想中的 C++ 应该有的样子,虽然看上去有点复杂。Java 的 GP 语法,虽未如 C++ 般达到了图灵完备,但是它的 F-约束,比起 C++ ,要好一些,它很

2005-11-06 16:34:00 1212

原创 自适应Lru(最近最少使用)算法

  在缓存管理算法中,Lru 几乎是公认的最优的算法。然而它也有一些缺陷,主要是因为:它假定对实体的访问有局部特性。当访问模式没有局部特性的时候,它就会退化为FIFO(先进先出)算法。  在我写一个文件系统的实现时,这种现象很让我头疼,因为很多时候,对一个文件的访问大多是顺序的,前面读取过的内容几乎不会被再次读取。苦思冥想之后,我终于找到了一种方案:  就是在缓存击中率降低时,移动将被换出的缓存结

2005-11-05 14:04:00 2429

原创 高性能文件系统实现

 高性能文件系统-演示文档 PowerPoint下载 演示文档首页Word Doc 文档下载 Fat 文件系统规格白皮书 文件系统的两种实现 标题 高性能文件系统 (该页文档描述) 最小实现 可扩展性 优良(基于虚拟文件系统构架) 无 时间性能 优良,接近硬件极限速度, 可用于驱动硬盘 差,仅可用于驱动存储卡片 空间性能 较大, Rom(Code)30K , Ram(RunTime) >= 32K

2005-11-03 20:59:00 2329

原创 C++使用模板进行的一种重构

如果有一些遗留代码,里面有很多结构,定义了一些相同的成员,但在一些时候,需要取出这些成员,进行同样的处理。如下面这些代码的红色部分。——原先的程序结构是使用类型码来区分实际的类型,客观地说,这些遗留代码是比较混乱的。不想说太多,用简单的代码来说明问题吧。typedef struct   _EVT_SWITCH : public EVT_HEAD { DWORD dwCategory; DWORD

2005-11-03 20:58:00 1290

原创 C语言垃圾代码清除工具(含源码)

CodeClean 使用说明  1.      说明 工程中有许多垃圾代码,CodeClean能识别的垃圾代码指从入口不可达的垃圾函数和全局变量。CodeClean 可以扫描出所有这类代码,从扫描垃圾的角度,未对函数和全局变量未做区别。 有很多函数和全局变量被其它的函数或全局变量引用到,但引用它的函数(或全局变量)从入口是不可达的,这样的函数(或全局变量)称它为 Island。 本程序仅扫描C语言

2005-11-03 20:56:00 4413

原创 使用 C 语言的“准元程序”设计

将 C 语言的预编译语言看成是“元语言”,使用该元语言进行程序设计但为什么叫“准元程序”?因为 C 语言的预编译语言没有迭代结构,所以C 语言的元程序语言不是图灵完备的。举个简单的例子,我们无法用 C 语言的“元语言”写出一个计算 factorial(x)——x 的阶乘的程序;而用 C++的模板就可以(使用模板特化)。因为这需要语言的迭代结构。C预编译语言没有迭代结构的原因是宏替换仅发生在

2005-11-03 20:48:00 1690 2

原创 C 语言几个绝招

1.        符号展开连接:#define  CAT_TOKEN_1(t1, t2)  t1##t2#define  CAT_TOKEN(t1, t2)  CAT_TOKEN_1(t1,t2)CAT_TOKEN_1 直接将 t1和t2连接成 t1t2,而CAT_TOKEN 将t1和t2展开后再连接,如:#define  t1  I_am_#define  t2  lei_pengCAT_TO

2005-11-03 20:39:00 1179

原创 一个脚本语言编译器

   该编译器及运行环境采用虚拟机执行方式,即将源文件编译为中间代码(类似 Java 字节码),而中间代码在虚拟机(不是堆栈机,Java虚拟机是“准堆栈机”,大部分指令是堆栈式的,但为了效率,也有小部分指令不是堆栈式的)上执行。 可用于编译原理学习。 代码下载:http://febird.nease.net/OtherProduct/ScriptCompiler/ScriptEngine.rar语

2005-11-03 20:29:00 2665

原创 按序号索引二叉树

  理论上,一个平衡的二叉树,可以在 O(logn)时间内,按中序遍历的顺序号(或者说下标)完成对结点的搜索。不过,这需要在每个结点上存储以该结点为根的子树的大小,通过增加存储的途径,来改善性能。  如果这是一棵排序树,那么这个序号就是按大小排列的顺序号。  但是如果这颗树在程序运行过程中有对结点的动态插入和删除(插入和删除时,以及调整平衡性时,都需要调整插入/删除结点路径上的Node.count

2005-11-03 20:27:00 4471

C++ Best Practice (高阶教程)

你所不知道的C++,临时变量、重载、模板、异常……等等你所不知道的细节

2013-02-25

有穷自动机的原理及应用

有穷自动机,自动机最小化,串匹配,压缩,性能

2013-02-22

对称冗余集群架构

对称冗余集群架构 容错 Memcached

2011-10-18

Text Clustering

2007年的一个项目,对文章进行聚类分析,近千万篇文章,4核4G 的低端服务器即可有效处理并提供在线服务

2011-10-18

HadoopStreaming

写的一个 Hadoop Streaming 教程

2011-10-18

MapReduce应用

2009年写的,刚才看最后修改日期是2009年11月

2011-10-18

Hadoop.MapReduce.分析

2009年7月份写的一篇 Hadoop.MapReduce 介绍

2011-10-18

febird C++ 库(附带所有源码)

febird implemented a serialization framework(vs boost.serialization/google.protocolbuffer), can be used in protocol parsing, big/small data serialization, even in very small object serialize, performance is good. (such as key/data serialization in BerkeleyDB), it provide fast performance(30~80 times faster than boost.binary_archive), and lower memory usage. febird.rpc is a C++ remote procedure call without an IDL supporting, it based on the serialization framework. febird.rpc provide convenient usage and fast performance, and an uniform coding style. febird 实现了一个序列化框架(对比boost.serializaiton/google.protocolbuffer),可以用在协议解析,大/小数据的序列化,有极高的性能(比boost.binary_archive快30~80倍),甚至对于非常小的对象,例如只有几个字节的对象,这在序列化BerkeleyDB中key/data这么小的对象(可能只是一个整数/变长整数)时非常有用。 该库提供了对BerkeleyDB的序列化封装,可以象使用std::map一样使用它。 该库也实现了一个不需要IDL的rpc,使用几个宏,很方便的自动完成函数参数的序列化,比MFC的MessageMap?还要方便。 使用时请checkout最新版,下载的那个版本比较旧了 @see http://blog.csdn.net/whinah http://blog.csdn.net/whinah/archive/2008/11/07/3248730.aspx http://blog.csdn.net/whinah/archive/2008/11/07/3248770.aspx

2009-04-27

空空如也

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

TA关注的人

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