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

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

原创 popcount & google.sparsegroup

ubuntu+gcc4.3 ,尝试修改 google.sparsetable 中的 sparsegroup,修改完成,不启用 -mpopcnt,sparsetable_unittest 和 hashtable_unittest 都通过了。启用-mpopcnt以后,发现硬件不支持,报非法指令错误,公司的电脑太烂了! 换到服务器上,是64位至强,gcc4.1.2,启用 -mpopcnt 再加

2010-02-22 20:35:00 2157

popcount & google.sparsegroup

ubuntu+gcc4.3 ,尝试修改 google.sparsetable 中的 sparsegroup,修改完成,不启用 -mpopcnt,sparsetable_unittest 和 hashtable_unittest 都通过了。启用-mpopcnt以后,发现硬件不支持,报非法指令错误,公司的电脑太烂了!换到服务器上,是64位至强,gcc4.1.2,启用 -mpopcnt 再加 -O1...

2010-02-22 20:35:00 115

原创 google.sparsegroup 可以更好

sparsegroup 是 google.sparseXXXX (sparsehashmap)系列中最底层的一个数据结构,sparseXXX 的互相依赖如下:-sparsegroup   - sparsetable      - sparsehashtable         - sparse_hash_map         - sparse_hash_set 因此,

2010-02-22 13:29:00 1583 1

google.sparsegroup 可以更好

sparsegroup 是 google.sparseXXXX (sparsehashmap)系列中最底层的一个数据结构,sparseXXX 的互相依赖如下:-sparsegroup - sparsetable - sparsehashtable - sparse_hash_map- sparse_hash_set因此,sparsegroup 实现的性...

2010-02-22 13:29:00 123

原创 tcmalloc 要点

google.tcmalloc线程缓存(threadcache)加锁(locking)加锁的开销是比较大的(cpu要同步cache),一般要几十个时钟周期,特别是cpu较多的时候,锁冲突概率大大增加。malloc不是在进入malloc就马上加锁,而是在thread cache耗尽后才加锁(用于从全局堆获取内存),加锁的频率被大大降低(通常

2010-02-22 11:33:00 1886

tcmalloc 要点

 google.tcmalloc线程缓存(threadcache)加锁(locking)加锁的开销是比较大的(cpu要同步cache),一般要几十个时钟周期,特别是cpu较多的时候,锁冲突概率大大增加。malloc不是在进入malloc就马上加锁,而是在thread cache耗尽后才加锁(用于从全局堆获取内存),加锁...

2010-02-22 11:33:00 80

原创 这样反贪如何?

类似于囚徒困境,立这样一条法律:  行贿者保留自己向受贿者行贿的证据,事后告发该受贿者;对于该告发行为,法律严惩该受贿者,而该行贿者不受任何处罚。  而如果是被查处,则行贿者和受贿者一起受处罚。  因为在大多数情况下,受贿者都是处于强势地位的,因此,受贿者告发行贿者不能免除(受贿者自己)被处罚。 当然,这个前提条件是假定行贿者在心中对受贿者是恨之入骨的!这样

2010-02-20 18:06:00 1148 2

这样反贪如何?

类似于囚徒困境,立这样一条法律:  行贿者保留自己向受贿者行贿的证据,事后告发该受贿者;对于该告发行为,法律严惩该受贿者,而该行贿者不受任何处罚。  而如果是被查处,则行贿者和受贿者一起受处罚。  因为在大多数情况下,受贿者都是处于强势地位的,因此,受贿者告发行贿者不能免除(受贿者自己)被处罚。当然,这个前提条件是假定行贿者在心中对受贿者是恨之入骨的!这样的...

2010-02-20 18:06:00 88

原创 google.sparsetable 实现细节

goolge.sparse*系列容器依赖关系: - sparsetable   - sparsehashtable      - sparse_hash_map      - sparse_hash_set与现有的一些“标准”实现不同,sparsehashtable 使用二次探测法,而不是链接,来解决hash冲突。 sparsetable 就更奇特了

2010-02-08 12:39:00 1111

原创 google.sparsetable 实现细节

goolge.sparse*系列容器依赖关系: - sparsetable   - sparsehashtable      - sparse_hash_map      - sparse_hash_set 与现有的一些“标准”实现不同,sparsehashtable 使用二次探测法,而不是链接,来解决hash冲突。 sparsetable 就更奇特了,...

2010-02-08 12:34:51 208

原创 gcc 4.5

只拣一些有用的: The -fshow-column option is now on by default. This means error messages now have a column associated with them. A new built-in function __builtin_unreachable() has been

2010-02-07 12:07:00 797

原创 终于可以优雅的捕获 shell heredoc 内容了

Shell代码 eval var=`cat` "+EOF"     终于可以用这种方式捕获 heredoc 的内容了     我太高兴了!     原先那种方式:  var=`cat "+EOF2"       heredoc content  EOF2  `     不光麻烦,而且会出问题,如果正文中出现一个未被引号引起来的`就挂了    

2010-02-06 14:29:00 2422

原创 终于可以优雅的捕获 shell heredoc 内容了

eval 'var=`cat`' <<"+EOF" 终于可以用这种方式捕获 heredoc 的内容了 我太高兴了! 原先那种方式:var=`cat << "+EOF2" heredoc contentEOF2` 不光麻烦,而且会出问题,如果正文中出现一个未被引号引起来的`就挂了 用 $(cat ...) 的方式...

2010-02-05 22:09:02 254

原创 shell heredoc 微妙之处

here doc 的一般用法:[cmd] <<word   here-documentdelimiter 可以把 heredoc 的内容放进文件,也可以放进 shell 变量,参见以下代码:#!/bin/sh# write heredoc text to filecat > file <<EOFsome te...

2010-02-05 20:03:33 102

原创 shell heredoc 微妙之处

linux firefox 下,这篇文章被csdn排乱了,并且无法修改排版格式,这第一行倒可以修改!排版正确的在 javaeye今天是我两个多月以来第一次使用 csdn 直接写博客,碰到这样的事情,让我太失望了,浪费我如此多的时间! here doc 的一般用法:[cmd] word here-documentdelimiter

2010-02-05 18:34:00 3597

原创 通过管道向 hadoop put 文件

使用 hadoop file shell 可以方便地向 hdfs put 文件,但是,该 shell 不支持从管道读取数据并放到 hdfs 文件中。它仅支持这样的 put 命令:Shell 代码 cd $HADOOP_HOME  bin/hadoop fs -put localfile $hdfsFile  bin/hadoop fs -

2010-02-05 15:56:00 3848

原创 shell 中验证管道是否正确执行

象这样的 shell 代码:prog1 | prog2 | prog3 | prog4 prog1 | prog2 | prog3 | prog4$? 只能得到最后一个命令的返回值,该 如何检查整个命令是否全部正确执行? 有一个数组变量PIPESTATUS,保存了最近一个管道命令中所有子命令的返回值

2010-02-05 15:53:00 861

原创 my PipelineProcessor

刚看到,intel tbb::pipeline 实现的功能,和我以前实现的一个pipeline : febird::thread::PipelineProcessor ,介绍:1. 多线程的 pipeline 设计模式2. 多线程 Pipeline 的改进 几乎就是同一个东西:多线程流水线执行,按次序,stage划分……可惜啊,它只在我的几个程序中用过,

2010-02-05 15:52:00 650

原创 简单的代码生成器创建领域语言

有一类问题,代码模板相同,但有少部分地方不同,一般可以写一个复杂的程序,使用不同的选项,完成不同的任务。或者,把公共的部分抽象成一个代码库,然后在不同程序中引用。但是,如果公共的部分很少,并且比较“专用”,或者因为其它原因,比较难以部署。怎么办?实际上,有另一种完全不同的编程模式来实现:代码生成器。unix世界中最知名的代码生成器莫过于lex和yacc了。但是,不比每个代码生成器都那么复杂,比

2010-02-05 15:46:00 947

原创 LC_ALL=en_US.UTF-8 让 awk 慢了 40 倍!

无意中发现,在一台服务器上,非常简单的awk程序,比C的等价物要慢40倍,感觉有点不太正常,还以为的确是awk太慢。不得其解,到另一台服务上试了一下,相同的 awk 程序,相同的测试数据,这台服务器的速度与C相当,也就是说,同样是awk,两台机器速度差了 40倍,而两台机器配置基本相当。非常困惑,找了两小时的原因,终于发现gawk手册里面有一段话:For other single-charac

2010-02-05 15:44:00 4374

原创 count, sum, avg by range in log(n) time

考虑一下这样一个查询:select count(*), sum(tax), avg(weight)  from pepolewhere id >= ${minid} && id  怎样才能实现更小的时间复杂度? 一般情况下,最简单的方法就是遍历这个区间。但是这需要O(logn +m)的时间复杂度,其中m是区间长度,n是总记录数。 实际上,可以略增一点存储代价

2010-02-05 15:40:00 1447

原创 MapReduce应该做更少的事情

MapReduce 做的事情太多了。相比 unix 思想,它更多的是提供了一种策略(Policy),而非一种机制(Machanism)。对于并行计算,如果我仅仅需要一种机制,暂且把这种机制叫做S,那么S只需要提供:任意切分原始输入  ——split无依赖的计算    ——map按依赖切分中间结果 ——partition有依赖的计算    ——reduce容错    

2010-02-05 15:38:00 684

原创 字符串基数排序

  对字符串使用基数排序,以前,我一直觉得:因为字符串的长度不一,无法使用基数排序。前两天因为有需要,忽然想通了!即便长短不一,也可以使用链式基数排序!  首先,将字符串长度当作最低有效位,因为基数排序是从最低有效位开始排的,就先用分配-收集算法对长度做一趟。对字符串中的具体某一位字符进行排序相比,算法是一样的,只是写法稍有不同。要将排序结果的lenRadix指针保存起来,后面要用。 

2010-02-05 15:36:00 3963 2

原创 MultipleInputs/MultipleOutpus

仔细看了一下 Hadoop.MapReduce 的代码,发现了两个新类:MultipleInputs/MultipleOutpus,再仔细看它们的详细文档,的确实现了我想要的功能:不同的InputPath,可是使用不同的InputFormat 和 Mapper可以将不同类型(可能是多种计算)的结果写入不同的Reduce Output。 再看一下它们的实现代码,让我大失所望,

2010-02-05 15:27:00 2169

原创 通过管道向 hadoop put 文件

使用 hadoop file shell 可以方便地向 hdfs put 文件,但是,该 shell 不支持从管道读取数据并放到 hdfs 文件中。它仅支持这样的 put 命令:cd $HADOOP_HOMEbin/hadoop fs -put localfile $hdfsFilebin/hadoop fs -put localfiles $hdfsDir 幸好,主流的 un...

2010-02-05 14:52:16 161

原创 shell 中验证管道是否正确执行

象这样的 shell 代码:prog1 | prog2 | prog3 | prog4$? 只能得到最后一个命令的返回值,该 如何检查整个命令是否全部正确执行? 有一个数组变量PIPESTATUS,保存了最近一个管道命令中所有子命令的返回值该返回值与 $? 一样,每次命令都会改写它,因此,要保存它就必须马上!以下代码可以检查管道命令:prog1 | prog2 | ...

2010-02-05 14:29:49 311

原创 my PipelineProcessor

刚看到,intel tbb::pipeline 实现的功能,和我以前实现的一个pipeline : febird::thread::PipelineProcessor ,介绍:1. 多线程的 pipeline 设计模式2. 多线程 Pipeline 的改进 几乎就是同一个东西:多线程流水线执行,按次序,stage划分……可惜啊,它只在我的几个程序中用过,现在有了...

2010-02-01 15:43:21 156

原创 简单的代码生成器创建领域语言

有一类问题,代码模板相同,但有少部分地方不同,一般可以写一个复杂的程序,使用不同的选项,完成不同的任务。或者,把公共的部分抽象成一个代码库,然后在不同程序中引用。但是,如果公共的部分很少,并且比较“专用”,或者因为其它原因,比较难以部署。怎么办?实际上,有另一种完全不同的编程模式来实现:代码生成器。unix世界中最知名的代码生成器莫过于lex和yacc了。但是,不比每个代码生成器都那么复杂,比...

2010-02-01 14:30:46 118

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

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