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

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

原创 小技巧,大智慧:%n of sscanf

scanf 系列中有个函数 sscanf,可能有人用过,它的普通用法,我就不讲了,可以参考这里:man 3 sscanfgnu c 实现了 C 标准的 format specify 的 %n,它的含义是返回从该次 XXscanf 调用开始到此读了多少个字节,我们可以利用这一点,来实现不需要内存分配的%s:假定我们读取一批商品记录,每条记录包含商品ID,商品名称,商品价格,各字段的类型在代码

2011-10-30 21:54:12 5176 3

小技巧,大智慧:%n of sscanf

scanf 系列中有个函数 sscanf,可能有人用过,它的普通用法,我就不讲了,可以参考这里:man 3 sscanfgnu c 实现了 C 标准的 format specify 的 %n,它的含义是返回从该次 XXscanf 调用开始到此读了多少个字节,我们可以利用这一点,来实现不需要内存分配的%s:假定我们读取一批商品记录,每条记录包含商品ID,商品名称,商品价格,各字段的类型在代码...

2011-10-30 21:54:00 154

原创 忽悠,也是一种学问

我看了一下我最近几个月的博客浏览记录,发现这篇的访问量最高。然而这篇文章里面提到的东西虽然有我这么多年编程生涯中的一些总结,但总体上没有太多实在的东西,缺乏可操作性。而其它的一些文章,比如:对数复杂度的聚集算法将递归转化成迭代的通用技术排列的分解......却几乎无人问津。  就如同在实际工作中,某某某通过调节某个参数,让系统的运行效率提升了20%,太牛逼,太了不起了!

2011-10-30 14:44:23 2149 1

忽悠,也是一种学问

我看了一下我最近几个月的博客浏览记录,发现这篇的访问量最高。然而这篇文章里面提到的东西虽然有我这么多年编程生涯中的一些总结,但总体上没有太多实在的东西,缺乏可操作性。而其它的一些文章,比如:对数复杂度的聚集算法将递归转化成迭代的通用技术排列的分解......却几乎无人问津。  就如同在实际工作中,某某某通过调节某个参数,让系统的运行效率提升了20%,太牛逼,太了不起...

2011-10-30 14:44:00 106

原创 缓存与平行数组在 hash_strmap 和 gold_hash_map 中的应用

2007 年我写过一篇关于平行数组与CPU缓存文章,最近,我在 hash_strmap 和 gold_hash_map 中应用了这种设计思想。hash value cache  对于一些对象,计算它们的 hash value 很昂贵,而对于另外一些对象,计算它们的 hash value 很廉价;所以,我们是否做 hash 缓存对 hash table 性能很重要。更有意思的是,hash

2011-10-29 19:51:54 2035 2

缓存与平行数组在 hash_strmap 和 gold_hash_map 中的应用

2007 年我写过一篇关于平行数组与CPU缓存文章,最近,我在 hash_strmap 和 gold_hash_map 中应用了这种设计思想。hash value cache  对于一些对象,计算它们的 hash value 很昂贵,而对于另外一些对象,计算它们的 hash value 很廉价;所以,我们是否做 hash 缓存对 hash table 性能很重要。更有意思的是,hash...

2011-10-29 19:51:00 185

原创 gold_hash_map vs google sparse map by google's time_hash_map.cc

这个列表由我写的一个 perl 程序抓取 time_hash_map 的结果生成。time_hash_map 是 google 自己实现的 hash table 中的一个性能测试程序,我在其中加入了针对 gold_hash_map 的测试,没有其它任何改动。链接中那个性能测试是 gold_hash_map 优化之前的测试结果(已经超越其它 map 了)。operation(

2011-10-29 00:51:52 2867 1

gold_hash_map vs google sparse map by google's time_hash_map.cc

这个列表由我写的一个 perl 程序抓取 time_hash_map 的结果生成。time_hash_map 是 google 自己实现的 hash table 中的一个性能测试程序,我在其中加入了针对 gold_hash_map 的测试,没有其它任何改动。链接中那个性能测试是 gold_hash_map 优化之前的测试结果(已经超越其它 map 了)。operation(byt...

2011-10-29 00:51:00 93

原创 hash_strmap 最新性能数据

QPS  达到了35,644,397测试平台: 普通 PCCPU 3G Hz内存 2G500,000 条数据keylen=32 byte迭代20次, 总查询次数 10,000,000 次, 耗时 0.280549 秒相关文章HashMap 能有多快hash_strmap 为什么那么快代码链接测试脚本:run.sh代码链接:hash_strma

2011-10-25 19:30:30 1179

hash_strmap 最新性能数据

QPS 达到了35,644,397测试平台: 普通 PCCPU 3G Hz内存 2G500,000 条数据keylen=32 byte迭代20次, 总查询次数 10,000,000 次, 耗时 0.280549 秒相关文章HashMap<string, ...> 能有多快hash_strmap 为什么那么快代码链接测试脚本:run.s...

2011-10-25 19:30:00 174

原创 gold_hash_map design

前一段时间写了个 hash_strmap, 效果不错,其中的一些设计思想可以扩展。于是,昨天到今天两天写了一个通用的 hash_map, 起了个名字叫gold_hash_map。hash_strmap 的介绍文章一,介绍文章二内存使用    和 hash_strmap 一样,使用连续的内存块,不过更简单,只需要两块内存( hash_strmap 需要 3 块或 4 块 )。

2011-10-23 18:24:13 2112 1

gold_hash_map design

前一段时间写了个 hash_strmap, 效果不错,其中的一些设计思想可以扩展。于是,昨天到今天两天写了一个通用的 hash_map, 起了个名字叫gold_hash_map。hash_strmap 的介绍文章一,介绍文章二内存使用和 hash_strmap 一样,使用连续的内存块,不过更简单,只需要两块内存( hash_strmap 需要 3 块或 4 块 )。...

2011-10-23 18:24:00 103

原创 gold_hash_map bench mark with google sparse hash

This is the testing result with google sparse hash's bench mark (time_hash_map.cc in google sparse hash's tar ball)The only modify to time_hash_map.cc is added the test for gold_hash_map (see diff b

2011-10-23 17:23:13 2235

gold_hash_map bench mark with google sparse hash

This is the testing result with google sparse hash's bench mark (time_hash_map.cc in google sparse hash's tar ball)The only modify totime_hash_map.cc is added the test for gold_hash_map (see diff be...

2011-10-23 17:23:00 112

gold_hash_map bench mark with google sparse hash

This is the testing result with google sparse hash's bench mark (time_hash_map.cc in google sparse hash's tar ball)The only modify totime_hash_map.cc is added the test for gold_hash_map (see diff be...

2011-10-23 17:23:00 50

原创 莫比乌斯带

在学校里,我学到的第一门编程语言,是 Mathematica,严格讲 Mathematica 也许不算是一门编程语言,但它的确很有趣。那个时候(1998年),Mathematica 还只是 1.2 (或者1.4,具体记不清了)了。学校机房的电脑也很慢,但是从那开始,我开始可以将自

2011-10-18 21:56:07 3156

莫比乌斯带

在学校里,我学到的第一门编程语言,是 Mathematica,严格讲 Mathematica 也许不算是一门编程语言,但它的确很有趣。那个时候(1998年),Mathematica 还只是 1.2 (或者1.4,具体记不清了)了。学校机房的电脑也很慢,但是从那开始,我开始可以将自己的一些想象变成视觉,莫比乌斯带的方程式就是这样想象出来的:ParametricPlot3D[{(4 + v*C...

2011-10-18 21:56:00 329

原创 Hadoop.MapReduce.简介

本文是2009年9月为公司内部培训写得的一篇简介。MapReduce概述提供计算任务的自动并行化机制,使用分发-收集的并行策略,Map阶段处理(无依赖的)原始输入,Reduce阶段处理依赖关系(按Key依赖)。架构在hadoop之上,原则上可以使用hadoop

2011-10-18 21:08:05 2644

Hadoop.MapReduce.简介

本文是2009年9月为公司内部培训写得的一篇简介。MapReduce概述提供计算任务的自动并行化机制,使用分发-收集的并行策略,Map阶段处理(无依赖的)原始输入,Reduce阶段处理依赖关系(按Key依赖)。架构在hadoop之上,原则上可以使用hadoop代理的所有分布式文件系统(hdfs,kfs,s3),但我们目前仅使用hdfs。MapReduce流程1.客户端提交M...

2011-10-18 21:08:00 108

原创 hash_strmap 为什么那么快

测试结果(普通PC,CPU 3G HZ,内存 2G)单核达到了每秒 30,000,000 次查询,string 长度是 32 字节,这个速度比 unordered_map 快10 倍,比 std::map 快 40 倍。iteration 的速度, 比 std::

2011-10-15 17:05:15 3885 3

hash_strmap 为什么那么快

测试结果(普通PC,CPU 3G HZ,内存2G)单核达到了每秒30,000,000次查询,string 长度是32字节。iteration 的速度, 比 std::map 快180倍以上, 比 unordered_map 快150倍。 同样是 Hash Map,为什么 hash_strmap 的查询速度可以比标准 unordered_map<string...> 快 ...

2011-10-15 17:05:00 122

原创 reverse_iterator

stl 容器大都有 reverse_iterator, 用法跟 iterator 一样。然而,可能很少有人考虑过它的实现。首先, reverse_iterator 大都由 std::reverse_iterator 包装 iterator 生成,如此,同样的遍历循环,reve

2011-10-15 15:37:59 2657 2

reverse_iterator

stl 容器大都有reverse_iterator, 用法跟 iterator 一样。然而,可能很少有人考虑过它的实现。首先, reverse_iterator 大都由 std::reverse_iterator 包装 iterator 生成,如此,同样的遍历循环,reverse_iterator 在每个循环中要调用两次 iterator.operator--, 一次是 reverse_ite...

2011-10-15 15:37:00 91

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

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