摘要:
两年未写总结博客,今天先来练练手,总结最近遇到的一个crash case。 注意:以下的分析都基于GCC4.4.6 一、解决crash 我们有一个复杂的排序,涉及到很多个因子,使用自定义排序函数的std::sort做排序。Compare函数类似下文的伪代码: 后来,我们给排序函数加了更多的复杂逻辑: 阅读全文
摘要:
公司的机器上默认是GCC4.4.6,为了完整的体验C++11,可以自己编译一个GCC4.8.2出来(自带了更高版本的glibc)。 以下是备忘。 1、下载GCC源码以及依赖库 gmp ftp://ftp.gnu.org/gnu/gmp/gmp-6.1.1.tar.bz2 mpfr ftp://ftp 阅读全文
摘要:
C++11已不是新鲜技术,但对于我来说,工作中用得还不够多(前东家长时间使用gcc3.4.5,虽然去年升了4.8.2,但旧模块维护还是3.4.5居多;新东家用的是4.4.6,不能完整支持C++11,而且有内部有基础库早已支持了C++11 STL的部分功能),再加上自己的练习也写得少,了解仅是几点简单 阅读全文
摘要:
今天休假在家,测试并搭建了一个replica set shard MongoDB鉴权集群。replica set shard 鉴权集群中文资料比较少,本文是个人笔记,同时也希望对后来者有所帮助。本文仅是搭建步骤和Q&A,用于实际工作中的使用查阅,阅读者需要有分布式集群的理论基础。 关键字:Repli 阅读全文
摘要:
最近我们需要对大约2T(6.5亿条)日志做全文检索,Elasticsearch看起来很火爆,又有很多产品使用(Facebook、github、stackoverflow),值得一试。以下是一些基础知识笔记。 Elasticsearch是一个基于Lucene构建的开源、分布式、RESTful的搜索引擎 阅读全文
摘要:
本文主要备忘为Node.js编写组件的三种实现:纯js实现、v8 API实现(同步&异步)、借助swig框架实现。 关键字:Node.js、C++、v8、swig、异步、回调。 简介 首先介绍使用v8 API跟使用swig框架的不同: (1)v8 API方式为官方提供的原生方法,功能强大而完善,缺点 阅读全文
摘要:
一、它是什么 zeroMQ,一个处理消息传输的库,重点在传输上,看起来它像是在socket上面封装了一层,让我们可以很容易的利用它来做N对M的数据传输,在分布式系统中很方便,在接收端它有round-robin负载均衡。 官方介绍:http://zguide.zeromq.org/page:all " 阅读全文
摘要:
众所周知,Node.js是单线程的,一个单独的Node.js进程无法充分利用多核。Node.js从v0.6.0开始,新增cluster模块,让Node.js开发Web服务时,很方便的做到充分利用多核机器。 充分利用多核的思路是:使用多个进程处理业务。cluster模块封装了创建子进程、进程间通信、服 阅读全文
摘要:
本文简单记录使用boost::spirit解析有中文关键字的字符串并执行响应动作,类似于语法分析+执行。关键字:字符串解析 boost::spirit::qi::parse qi::unicode::char_这几天在使用boost::spirit解析中文字符串表达式,网络上这方面的资料很少,很多介... 阅读全文
摘要:
本文主要从实践角度介绍长、短连接在TCP层面的表现,借助Node.JS搭建后台服务,使用WinHTTP、Ajax做客户端请求测试,最后简单涉及WebSocket。 关键字:长连接、短连接、Node.JS、WebSocket. 一两年前,在理论上对长短连接做了学习,那时的技能以客户端为主,所以也止步于 阅读全文