- 博客(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
febird C++ 库(附带所有源码)
2009-04-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人