管道返回值判断

管道返回值判断

最近一个脚本使用了管道,比如A|B,A运行异常,B运行正常,返回的$?是0,所以判断失效。经过搜索,了解到这种情况下,应该判断 ${PIPESTATUS[0]},以此类推。……

警惕多线程环境string、vector、protobuf等自增长数据结构的隐性内存泄露

警惕多线程环境string、vector、protobuf等自增长数据结构的隐性内存泄露

最近工作上一个模块内存泄露,内存缓慢增涨,存在oom的风险,很多人搞了一个月,最后定位是protobuf格式的数据的增涨。首选说一下,我定位内存泄露采取的经验吧。我一般利用gperftools,在进程起来之后,在一个时刻,先dump一个内存占用的heap,然后压力一段时间,等内存有明显增涨后,在dump一个内存占用的heap,这样比较两个heap的占用,图……

word2vec c++接口

word2vec c++接口

word2vec最近挺火的,究其原因主要是效果好。我用某个商业搜索引擎的seach session数据训练了一个词query向量。注意,没有进行分词,进行分词的效果可能要稍微差一些吧,具体就不知道了。每个词的向量大小为200维,包括的query数量为210w。包含的query还相对不是很多,其实可以用更多的数据进行训练。用的工具就是官方的c版本。在用的时候……

支持持久化的hash_map

支持持久化的hash_map

stl ext中的unordered_map虽然用起来非常方便,但是不支持持久化,速度上也没有太多的优势。在我们的项目中,我们经常要加载key-value的词典,通常key是uint64_t,value可能是很多类型,也有可能不只一个字段。有人可能会问,为什么key会是uint64_t,其实我们通常的key是字符串,但是我们会先用md5或者cityhash等……

给定一个数,找其之后的最小的一个素数

给定一个数,找其之后的最小的一个素数

在工作中,我们有的时候需要在给定一个数,在其后找一个最小的素数。比如我们希望创建一个给定大小的hash map。但是一般来说,hash map桶的大小最好是素数。简单来讲,我们只要在给定的素数往后,一个一个地判断是否素数,知道找到一个素数就可以了。关键在判断一个数是否是素数的问题上。判断一个数是否为素数的算法很多。有确定性的,也有非确定性的。我这里用的是……

gmarks不好用了

gmarks不好用了

之前一直用火狐下的gmarks插件来管理我的网址书签,前段时间发现不能用了。开始以为是被墙了,后来挂上代理了,还是不好使用,最好没招了,只能该用本地的书签。用了一下本地的书签之后,感觉很郁闷,应该用这钱的习惯了吧,感觉用现在的不爽了。今天把那个安装包解压开来看了一下,里面一堆js文件,调试了一下,然后抓了一下谷歌书签的包,发现js里面用的一个参数是s,但……

libevent长连接初探

libevent长连接初探

一个用libevent搭建的http服务,之前客户端一直是以短连接来连接服务器的。也就是,客户端每发一次请求都要重建一下tcp连接,服务端在响应完客户端的请求后会主动断掉连接。短连接不但因为重建tcp连接要浪费时间,而且还会造成服务端因为处于TIME_WAIT状态下socket过多,可能导致服务端不稳定。Http长连接是指,对于一个tcp连接,发完一个h……

[python] 汉字转拼音(支持多音字)

[python] 汉字转拼音(支持多音字)

写了一个汉字转拼音的库,分享给大家,该库区别其他的库,是能正确处理多音字。解决的方法其实也很简单,基本上就是搞了个词典,对多音字组成的词,由词典给出注音。其中用到了分词,我使用的是jieba分词,注意我把里面的词典给替换了。目的是为了与注音词典一致,这样分好的词在注音词典中都能找到。第一次使用python写类,python的开发经验也不是太足,所以代码可……

[python] domain类

[python] domain类

有的时候,我们希望能在规定host的情况得到domain。比如在给定http://www.baidu.com的情况下得到baidu.com。也许有人会说,这很简单,直接把www去掉就可以了。但是对于http://www.com.cn、abc.co.cc等host呢?它们的domain是什么呢?所以给定host求domain不单单是去除www这么简单了。我们……

介绍一个开源项目dict4cn

介绍一个开源项目dict4cn

介绍一个有关词典的开源项目dict4cn,该项目应该是一个用java写的中文词典和翻译项目。介绍该项目的原因,是这个项目中有很多解析其他词典的java代码,可以供参考。其中包含灵格斯、搜狗输入法等多个词典格式的解析程序,应该会对我们制作和收集词典起到很大的作用。项目地址::https://dict4cn.googlecode.com/svn地址:http……