
C++
zhangxinrun_业余erlang
这个作者很懒,什么都没留下…
展开
-
无锁队列
转载:http://hi.baidu.com/ah__fu/blog/item/9c5b1236934f84240b55a92b.html下面是他写的无锁队列的文章:Michael &Scott 无锁队列 C++ 实现: http://www.cnblogs.com/napoleon_liu/archive/2010/08/07/1794566.html 这个MS-Qu转载 2011-12-23 16:03:07 · 2548 阅读 · 0 评论 -
ethtool 命令详解
转载:http://linfengdu.blog.163.com/blog/static/117710732010112124631684/命令描述:ethtool 是用于查询及设置网卡参数的命令。 使用概要:ethtool ethx //查询ethx网口基本设置,其中 x 是对应网卡的编号,如eth0、eth1等等ethtool –h //显转载 2012-01-17 15:12:09 · 57414 阅读 · 0 评论 -
深入CACHE
转载:http://blog.csdn.net/dylgsy/article/details/4182457Cache是我们经常关心的话题,K6-Ⅲ的推出引出了一种全新的缓存结构即Tri-level Cache设计思想。那么对于微机系统而言,Cache到底有什么作用?它的工作原理又是如何的呢? 一、使用Cache的必要性 所谓Cache即高速缓冲存储器,它转载 2011-12-29 15:37:16 · 809 阅读 · 1 评论 -
False sharing问题及其解决方法
转载:http://webcache.googleusercontent.com/search?hl=zh-CN&newwindow=1&safe=strict&gbv=2&q=cache:-kZ77hm9shsJ:http://blog.yufeng.info/archives/tag/align+typedef+union+align&ct=clnk在做多线程程序的时候,为了避免使转载 2011-12-31 11:25:45 · 1877 阅读 · 0 评论 -
Linux中对于SMP系统的实现
转载:Linux从2.0开始增加对SMP系统的支持。在2.2前的内核中,SMP实现在用户级,Linux内核本身并不能因为有多个处理器而得到加速;在2.4内核后,SMP实现在核心级,使用多处理器可以加快内核的处理速度。 1、SMP中的系统引导 在同一时间,一个“上下文”只能由一个CPU处理。在系统引导和初始化阶段,只有一个“上下文”,只能由一个处理器来处理。BP完成转载 2012-01-04 17:53:12 · 1668 阅读 · 0 评论 -
Redis快速入门:安装、配置和操作
转载:http://tech.it168.com/a2011/0830/1239/000001239923_all.shtml Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。 如何安装Redis? Redis的官方转载 2012-02-15 14:31:07 · 1960 阅读 · 0 评论 -
HBase 和 MongoDB在设计上的区别
转载:http://leongfans.iteye.com/blog/1019383昨天搜一下mongodb的资料,介绍应用的比较多,原理介绍的不多。 粗略得看了一下,总体来说两者的设计思路差不多,主要就是通过划区间去分布数据,后台进程进行数据分裂 两者的区别主要在于: 1、HBase依赖于HDFS;MongoDB直接存储在本地磁盘中 2、HBase按照列族将数据存转载 2012-02-17 11:25:19 · 5883 阅读 · 0 评论 -
redis总结
转载:http://blog.sina.com.cn/s/blog_4a1f59bf0100teiz.htmlredis高可用 (来自于:http://www.iteye.com/topic/1108383)因为redis不仅作为缓存使用,而且也是resque执行异步和定时任务的消息队列,因此对于可用性的要求就比较高,一旦挂掉,所有后台任务就会全部停止,严重影响网站的功能和体验。转载 2012-03-01 17:40:28 · 2289 阅读 · 0 评论 -
linux下禁止交换分区
计算机使用内存来存储临时数据,但由于内存容量有限,所以需要在硬盘上开辟一块临时存储空间,这就是交换分区。交换分区也有讨厌的一面。硬盘的速度比内存慢很多,更不用说CPU中的缓存和寄存器了。正式因为这个原因,当计算机使用交换分区时,你会发现,当前程序乃至整个计算机运行缓慢。所幸,现在内存已经很便宜了。如果你有足够的内存,可以在命令行终端停用交换分区:echo "vm.swappiness=转载 2012-03-09 11:30:49 · 4527 阅读 · 0 评论 -
推荐七款优秀的 Linux 时间跟踪软件
转载:http://www.linuxde.net/2012/01/6127.html时间跟踪软件是记录任务所花时间的计算机程序。此类软件可以让户能运行结算报表,准备为客户开具发票。部署此类软件可用于帮助衡量生产效率,同时也常被会计师、律师、自由职业者等按小时收费职业者用于向客户收取费用。Linux 上的免费时间跟踪软件选择比较有限,linuxlinks 这篇文章列举了七款优秀的转载 2012-01-09 18:42:05 · 1950 阅读 · 0 评论 -
linux内核学习笔记:CPU高速缓存行对齐
转载:http://blog.csdn.net/snowwalf/article/details/6784014CPU的高速缓存一般分为一级缓存和二级缓存,现今更多的CPU更是提供了三级缓存。CPU在运行时首先从一级缓存读取数据,如果读取失败则会从二级缓存读取数据,如果仍然失败则再从内存中存读取数据。而CPU从一级缓存或二级缓存或主内存中最终读取到数据所耗费的时钟周期差距是非常之大的。转载 2012-01-09 13:27:45 · 2428 阅读 · 0 评论 -
(经典)struct和 union用 sizeof 看字节对齐,以及__declspec( align( # ) ) 和 #pragma pack()的使用方式
转载:http://blog.csdn.net/ztz0223/article/details/1853963union u{ double a; int b;}; union u2{ char a[13]; int b;}; union u3{ char a[13]; char b;}; cout转载 2011-12-28 11:59:15 · 825 阅读 · 0 评论 -
Pthread_Mutex_t Vs Pthread_Spinlock_t (经典)
转载:http://www.cnblogs.com/diyunpeng/archive/2011/06/07/2074059.html 锁机制(lock) 是多线程编程中最常用的同步机制,用来对多线程间共享的临界区(Critical Section) 进行保护。Pthreads提供了多种锁机制,常见的有:1) Mutex(互斥量):pthread_mutex_***2) S转载 2011-12-27 15:18:23 · 4313 阅读 · 0 评论 -
wait-free 和 lock-free 资料收集
等待无关(Wait-Free)/锁无关(Lock-Free)与基于锁(Lock-Based)的比较一个“等待无关”的程序可以在有限步之内结束,而不管其它线程的相对速度如何。, @% B- m6 I/ O: k0 N7 W f0 [一个“锁无关”的程序能够确保执行它的所有线程中至少有一个能够继续往下执行。这便意味着有些线程可能会被任意地延迟,然而在每一步都至少有一个线程能够往下执行。因转载 2011-12-26 15:26:16 · 4759 阅读 · 0 评论 -
如何快速掌握一个开源项目
转载:http://blog.csdn.net/carry1314lele/article/details/5643982有不少开源项目,需要快速浏览代码,掌握整体结构,以备己用。如果有新的开源项目接手,这个方法也是适用的。首先你会使用一个源码浏览工具,如 Source Insight.步骤如下:1.如果有文档,先浏览整个系统的抽象架构。2.浏览整个项目源码的目录结转载 2011-12-26 17:27:52 · 974 阅读 · 0 评论 -
一个轻量级的开源TCP/IP协议栈
网站:http://savannah.nongnu.org/projects/lwip/ http://www.sics.se/~adam/lwip/原创 2011-12-26 17:41:57 · 3412 阅读 · 0 评论 -
内存屏障什么的(经典)
转载:http://www.spongeliu.com/clanguage/memorybarrier/当你看到“内存屏障”四个字的时候,你的第一反应是什么?寄存器里取出了错误的值?ifence,sfence之类的指令?还是诸如volatile之类的关键字?好吧,我第一次看到这四个字的时候,脑子里浮现出的是魔兽争霸里绿油油的铺满苔藓的岩石屏障- -#,并且,当我搞明白内存屏障具体是什么转载 2011-12-26 18:00:50 · 3180 阅读 · 2 评论 -
计算机体系结构简介
转载:http://blog.csdn.net/carry1314lele/article/details/4704640所谓“体系结构”,也可以称为“系统结构”,是指程序员在为特定处理器编制程序时所“看到”从而可以在程序中使用的资源及其相互间的关系。 体系结构最为重要的就是处理器所提供的指令系统和寄存器组。指令系统分为CISC(Complex Instructio转载 2011-12-26 15:58:53 · 1232 阅读 · 0 评论 -
Linux原子操作的分析(经典)
转载:http://blog.csdn.net/carry1314lele/article/details/4886709本文针对Linux提供的原子操作函数atomic_dec_and_test做了详细的实例分析,解释了其原子性的本质意义。 并对volatile产生的误解做了解释。1. atomic_dec_and_test分析(1)先来看atomic_dec_a转载 2011-12-26 17:27:00 · 1751 阅读 · 0 评论 -
Coroutine实现有感
转载:http://www.douban.com/note/11552969/今天在debug的过程中顺便翻看了wikipedia的Coroutine条目,简单了解一下coroutine的实现机制:Coroutine其实仍然是串行运算,并不是真正意义上的并行计算。因此coroutine不会有传统并行计算的访问冲突。Coroutine的实现方式可以分成两种,第一种是借用C的S转载 2012-03-28 14:44:02 · 1676 阅读 · 0 评论 -
KISS──UNIX/LINUX哲学思想
转载:http://liuaigui.blog.sohu.com/44005277.html编写只做一件事情,并且要做好的程序;编写可以在一起工作的程序,编写处理文本流的程序,因为这是通用的接口。这就是UNIX哲学.所有的哲学真正的浓缩为一个铁一样的定律,高明的工程师的神圣的“KISS 原则”无处不在。KEEP IT SIMPLE , STUPID !大部分转载 2012-04-25 10:19:42 · 6916 阅读 · 0 评论 -
Unix程序设计哲学-KISS
转载:http://blog.chinaunix.net/uid-253939-id-2458682.htmlRule of Modularity: Write simple parts connected by clean interfaces.Rule of Clarity: Clarity is better than cleverness.Rule转载 2012-04-25 11:01:53 · 2453 阅读 · 0 评论 -
Linux下C++访问MySQL
转载:http://curran.blog.51cto.com/2788306/533169今天给大家演示在linux下如果用C++操作mysql1:安装MySQL挂载光盘:mkdir /cdrommount /dev/hdc /cdromcd /cdrom/Serverrpm -ivh perl-DBI-1.52-2.el5.i386.转载 2012-06-05 16:23:45 · 7444 阅读 · 0 评论 -
C++性能优化技术导论
转载:http://blog.csdn.net/heiyeshuwu/article/details/7088192【介绍】本文完整的描述了C++语言的性能优化方法,从编译器、算法、语言特性、硬件、Linux等多个角度去考虑问题,文章技术含量很高,值得一看。来源:http://www.whysearch.org/a/zh_CN/date/20110824作者:冲转载 2012-06-05 16:31:19 · 7380 阅读 · 0 评论 -
Linux下利用O_DIRECT标志绕过VFS cache Tweet
转载:http://passer-byb.com/blog/85.html这个问题折腾了我有一个星期了,因为最近一直在搞有关磁盘的I/O的测试,因此需要绕过或者关闭VFS的cache直接对磁盘进行读写。Google过之后发现基本上想要关闭cache是不可能的,只有想办法绕过了。于是很自然的想到了write()和read()这两个东西,可是当时并没意识到buffer跟cache并不是一个转载 2012-06-05 18:36:07 · 4777 阅读 · 0 评论 -
Linux环境进程间通信 ——无名管道工作机制研究
一、引言 Linux作为一个开源的操作系统,是我们进行操作系统和提高编程水平的最佳途径之一。 好的程序如同好的音乐一样,完成的完美、巧妙。开放源码的程序都是经过无数人检验地,本文将以linux-kernel-2.6.5为例对pipe的工作机制进行阐述。二、进程间通信的分类 大型程序大多会涉及到某种形式的进程间通信,一个较大型的应用程序设计成可以转载 2012-09-16 12:42:29 · 1716 阅读 · 0 评论 -
深入理解PIPE
转载:http://blog.ddup.us/?p=285 在linux中要进行进程间通信有多种方法:pipe、fifo、共享内存,信号量,消息队列,共享文件等等。其中pipe和fifo 使用最广泛,二者的区别为pipe为匿名管道,只能用在有父子关系的进程间通信,而fifo可以通过文件系统中的一个文件取得,所以不受上述限制。作为父子进程间通信的通道,pipe同样可以看作是一个先进先出的转载 2012-09-16 20:42:23 · 3283 阅读 · 1 评论 -
Linux进程间通信分类 以及 pipe的原理实现
转载:http://blog.csdn.net/sunmenggmail/article/details/7888746 一个大型的应用系统,往往需要众多进程协作,进程(Linux进程概念见附1)间通信的重要性显而易见。本系列文章阐述了Linux环境下的几种主要进程间通信手段,并针对每个通信手段关键技术环节给出详细实例。为达到阐明问题的目的,本文还对某些通信手段的内部实现机制进行了分析转载 2012-09-16 12:41:38 · 1342 阅读 · 0 评论 -
惊群问题的思考
转载:http://www.cppblog.com/isware/archive/2011/07/20/151470.html“据说”惊群问题已经是一个很古老的问题了,并且在大多数系统中已经得到有效解决,但对我来说,仍旧是一个比较新的概念,因此有必要记录一下。什么是惊群 举一个很简单的例子,当你往一群鸽子中间扔一块食物,虽然最终只有一个鸽子抢到食物,但所有转载 2012-10-31 19:49:23 · 1330 阅读 · 0 评论 -
软件开发中常见的十大系统瓶颈
转载:http://www.csdn.net/article/2012-11-08/2811571-Big-List-Of-20-Common-Bottlenecks在Zen And The Art Of Scaling - A Koan And Epigram Approach中,Russell Sullivan提出了一个非常有趣的总结:软件开发常见的20个传统的系统瓶颈转载 2012-11-13 13:36:28 · 1410 阅读 · 0 评论 -
tracker-P2P服务器架设
转载:http://hi.baidu.com/kouzl/blog/item/5c7101c2adee5e000ff47796.html一、bt原理介绍 传统的文件下载服务都是基于客户机/服务器模型,被下载的文件放在服务器上,用户登录服务器,将该文件下载到本地。在文件下载的过程中,被传输文件的来源和目的端并不对等,服务器只是单向地将文件传送给客户端。 这种传统软转载 2012-05-13 10:14:53 · 8733 阅读 · 0 评论 -
tcp的半连接攻击和全连接攻击--TCP_DEFER_ACCEPT
转载:http://blog.csdn.net/dog250/article/details/5955094半连接攻击是一种针对协议栈的攻击,或者说是一中针对主机的攻击,皮之不存毛将焉附,主机一旦被攻击而耗尽了内存资源,用户态的应用程序也将无法运行。TCP半连接攻击可以通过syn cookie机制或者syn中继机制等进行防范,对于tcp服务来讲还有一种可以称为“全连接攻击”的攻击类型,转载 2012-05-31 11:51:48 · 2692 阅读 · 0 评论 -
NAT主流穿越技术
转载:http://www.rosoo.net/a/201103/11129.html1. ALG(Application Level Gateway)在NAT/Firewall上加入能够对于具体应用协议(如H.323)感知的模块,通过对于具体应用协议 的感知,进行针对不同协议的具体NAT/Firewall穿越处理。对于每一种应用协议都需要一个ALG实例(Instanc转载 2012-05-13 09:36:41 · 2265 阅读 · 0 评论 -
Linux kernel [select poll epoll]区别
转载:http://bookjovi.iteye.com/blog/1186736Linux中异步IO等待无非就三个系统调用:select, poll和epoll。很多人无法理解三种调用的区别,或不够了解,今天就结合Linux kernel code详细描述三个的区别! select: select 的限制就是最大1024个fd,可以查看k转载 2012-04-28 10:43:34 · 2800 阅读 · 0 评论 -
中文分词之最大匹配
转载:http://apps.hi.baidu.com/share/detail/15014495中文分词在中文信息处理中是最最基础的,无论机器翻译亦或信息检索还是其他相关应用,如果涉及中文,都离不开中文分词,因此中文分词具有极高的地 位。中文分词入门最简单应该是最大匹配法了,当年师兄布置给我的第一个学习任务就是实现最大匹配 法的分词算法(正向、逆向)。记得当时对自己参考学习最有帮转载 2012-05-01 13:11:57 · 3111 阅读 · 0 评论 -
.PHONY makefile中的伪目标
转载:http://www.cnblogs.com/chenyadong/archive/2011/11/19/2255279.html所谓伪目标就是这样一个目标,它不代表一个真正的文件名,在执行make时可以指定这个目标来执行其所在规则定义的命令,有时我们将一个伪目标成为标签。那么到底什么是伪目标呢?可能作为初学者还不会在乎这个问题,下面我们来看下我们将在什么时候需要转载 2012-05-07 11:31:38 · 1114 阅读 · 0 评论 -
glib安装
转载:http://blog.csdn.net/cswodi/article/details/7282122一、glib介绍libc指C函数库,这是一个通称,而glibc是GNU实现的libc,至于glib是一组较高层的函数库,比如链表、Hash等,在linux中glib是建立在glibc之上的,qt的库就叫做qt,也是建立在glibc和其他一些基本库之上。转载 2012-05-27 10:16:51 · 30220 阅读 · 4 评论 -
IO - 同步,异步,阻塞,非阻塞 (亡羊补牢篇)
转载:http://blog.csdn.net/historyasamirror/article/details/5778378当你发现自己最受欢迎的一篇blog其实大错特错时,这绝对不是一件让人愉悦的事。《 IO - 同步,异步,阻塞,非阻塞 》是我在开始学习epoll和libevent的时候写的,主要的思路来自于文中的那篇link 。写完之后发现很多人都很喜欢,我还是非转载 2012-05-29 15:01:35 · 1138 阅读 · 0 评论 -
两种高性能I/O设计模式(Reactor/Proactor)的比较
转载:http://www.cppblog.com/pansunyou/archive/2011/01/26/io_design_patterns.html系统I/O 可分为阻塞型, 非阻塞同步型以及非阻塞异步型[1,2]. 阻塞型I/O意味着控制权只到调用操作结束了才会回到调用者手里. 结果调用者被阻塞了, 这段时间了做不了任何其它事情. 更郁闷的是,在等待IO结果的时间转载 2012-05-29 15:20:46 · 2076 阅读 · 0 评论 -
libmemcached
什么是 libmemcached ? libmemcached 是一个 memcached 的库,客户端库,C 和 C++ 语言实现的客户端库,具有低内存占用率、线程安全、并提供对memcached功能的全面支持。它还采用 多种命令行工具: memcat , memflush , memrm , memstat ,并memslap (负载代)。程序库一直在设计,让不同的散列方法对密钥,分转载 2012-05-30 18:29:17 · 1208 阅读 · 0 评论