自定义博客皮肤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可检索压缩技术作者。致力于让数据更小,访问更快。

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

原创 千万注意,不要 hack std::string

前段时间被一个bug折磨了两个星期,最后发现竟然是如此一个陷阱——我为了减少内存用量并且减少一次内存拷贝,直接通过string.data()修改了string的内部表示。这与其说是一个陷阱,不如说是我自己给自己造了一个陷阱然后把自己给掉进去了。发病机制可以用如下代码简单的勾画出来:using namespace std; int main(int argc, char* argv[])

2007-02-25 14:49:00 1609

千万注意,不要 hack std::string

前段时间被一个bug折磨了两个星期,最后发现竟然是如此一个陷阱——我为了减少内存用量并且减少一次内存拷贝,直接通过string.data()修改了string的内部表示。这与其说是一个陷阱,不如说是我自己给自己造了一个陷阱然后把自己给掉进去了。发病机制可以用如下代码简单的勾画出来:using namespace std; int main(int ar...

2007-02-25 14:49:00 146

原创 前缀压缩词典

包含多个固定索引,一个可变索引,固定索引使用一个内存池和一个数组保存项目在内存中的偏移,并且使用前缀压缩,使用空间最小(每个词条4个字节的索引空间)   可变索引不压缩,并且可以动态插入词条,占用空间较大(每个词条20个字节的索引空间)存储 1000 万个词,占用内存 100M 左右,平均每个词10个字节(包括了字符串空间和索引空间)。接口采用 stl 容器的风格

2007-02-09 22:34:00 2427

前缀压缩词典

包含多个固定索引,一个可变索引,固定索引使用一个内存池和一个数组保存项目在内存中的偏移,并且使用前缀压缩,使用空间最小(每个词条4个字节的索引空间)   可变索引不压缩,并且可以动态插入词条,占用空间较大(每个词条20个字节的索引空间)存储 1000 万个词,占用内存 100M 左右,平均每个词10个字节(包括了字符串空间和索引空间)。接口采用 stl 容器...

2007-02-09 22:34:00 132

原创 cpu 的 cache 是很宝贵的——从互相平行的数组看

以前一直想不通,为什么在有些系统中,要把同一个数据结构的不同字段放入 多个互相平行的数组中,而不是放入一个结构中。典型的如Windows PE 可执行文件的导入表,有 IAT (导入地址表)和 INT(导入名字表),这两个表就放在两个互相平行的数组中,而按照我们的第一感觉,好像这样的设计纯粹是玩弄我们的大脑,没有任何别的益处。其实仔细想想,这样的益处是很大的,在Windows 从 INT 载入

2007-02-09 22:25:00 2021

cpu 的 cache 是很宝贵的——从互相平行的数组看

以前一直想不通,为什么在有些系统中,要把同一个数据结构的不同字段放入 多个互相平行的数组中,而不是放入一个结构中。典型的如Windows PE 可执行文件的导入表,有 IAT (导入地址表)和 INT(导入名字表),这两个表就放在两个互相平行的数组中,而按照我们的第一感觉,好像这样的设计纯粹是玩弄我们的大脑,没有任何别的益处。其实仔细想想,这样的益处是很大的,在Windows 从 INT 载入 ...

2007-02-09 22:25:00 104

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关注的人

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