Program
yfk
这个作者很懒,什么都没留下…
展开
-
Makefile,Linux程序员你伤不起
1. 概述Makefile,what??很多windows程序可能都没听说过简单的说,Makefile是Unix/Linux环境下描述了整个工程的编译、连接等规则的文件,其主要包括三点: 1) 工程中的哪些源文件需要编译以及如何编译 2) 依赖库以及库所在的位置 3) 想得到什么原创 2011-07-28 22:40:32 · 5240 阅读 · 1 评论 -
网络编程--IO模型示例
IO模型在Richard Stevens的《UNIX网络编程,第一卷》(程序猿必备!)一书中有非常详尽的描述,以下简要介绍,并给出代码示例。另外比较好的总结性blog,推荐:使用异步 I/O 大大提高应用程序的性能IO - 同步,异步,阻塞,非阻塞 (亡羊补牢篇)常见网络IO模型:阻塞式IO、无阻塞式IO、IO复用、异步IO、信号驱动阻塞式IO:在一个进程发原创 2012-05-10 00:25:39 · 11133 阅读 · 1 评论 -
浅谈API设计
为什么需要了解一些API设计?只要你编程,你就是API Designer!一个完整功能的程序,如果你独立开发,那你既是API的Designer,也是API的User如果你和你的同事一起开发,一个好的设计,模块之间的耦合应该也是API级别的,你既是你负责模块API的Designer,也是其他同事模块API的User另外,你有可能对外提供一个程序包,用户通过api调用你的服务。你也有可原创 2013-09-17 22:08:59 · 6405 阅读 · 0 评论 -
多线程浅谈
什么是线程?线程是"进程"中某个单一顺序的控制流。也被称为轻量进程(lightweight processes)。(好恶心的定义。。。。)为什么使用线程呢?顾名思义,轻量级进程。一个线程资源的消耗远远低于一个进程,两者相比大概在30倍(不同系统,有差距滴)。更大的优势,线程切换所需时间远低于进程切换。多线程编程要使用多线程编程么?用pthread(POSIX thread)吧,可移植性好,简单,大家都用(出问题baidu下基本就能解决)。怎么用?加一个pthread.h的头文件,链接一个静态库libpthr原创 2011-04-02 10:12:00 · 1949 阅读 · 0 评论 -
一封模块短板分析的邮件
针对国君提出的“map1-stat在极限情况下cpu idle在33%,无法再压下去,而目前处理的瓶颈在与统计线程的计算。统计线程处理逻辑存在短板,没有最有效的利用CPU,”(简称短板问题),进行了如下场景分析:.......原创 2013-12-18 18:52:48 · 5326 阅读 · 1 评论 -
HBase应用:Table设计
从应用角度,有两点比较重要:1. HBase中RowKey是按照字典序排列的2. 不同Column Family的数据,在物理上是分开的原创 2014-06-30 21:55:36 · 19317 阅读 · 0 评论 -
网络编程--UDP协议
UDP(User Datagram Protocol)协议即用户数据报协议,UDP是一个简单的面向数据报的传输层协议。和TCP不一样,UDP不提供信息的可靠传递,主要包括:1. TCP协议中,当数据接收方收到发送方传来的信息时,会自动向发送方发出确认消息,发送方只有在接收到该确认消息之后才继续传送其它信息,否则将一直等待直到收到确认信息为止。而UDP协议并不提供数据传送的保证机制,如果原创 2012-04-26 03:19:11 · 4253 阅读 · 0 评论 -
jemalloc: another option
1. 概述jemalloc起源于Jason Evans 2006年在BSDcan conference发表的论文:A Scalable Concurrent malloc Implementation for FreeBSDjason认为phkmalloc(FreeBSD’s previous malloc implementation by Kamp (1998))没有考虑多处理器的情况原创 2011-12-13 23:32:13 · 18794 阅读 · 1 评论 -
Getting Started with Boost
1. Boost是什么 Boost库是一个可移植、提供源代码的C++库,其覆盖了广泛的领域,从数学库到智能指针,从模板元编程库到预处理器库,从线程到lambda表达式等等。 Ten Boost libraries are already included in the C++ Standards Committee's Library Technical Report (T原创 2011-09-15 01:00:13 · 3066 阅读 · 0 评论 -
MurmurHash PK CityHash
1. 概述murmurhash是 Austin Appleby于2008年创立的一种非加密hash算法,适用于基于hash进行查找的场景。murmurhash最新版本是MurMurHash3,支持32位、64位及128位值的产生。murmurhash标准使用c++实现,但是也有其他主流语言的支持版本,包括:perl、c#、ruby、python、java等。murmurhash在多个开源项原创 2012-03-14 21:08:06 · 29201 阅读 · 2 评论 -
网络编程--TCP协议
TCP协议是端到端的传输控制协议,之所以是“端到端”的协议,是因为”路由“是由IP协议负责的,TCP协议负责为两个通信端点提供可靠性保证,这个可靠性不是指一个端点发送的数据,另一个端点肯定能收到(这显然是不可能的),而是指,数据的可靠投递或者故障的可靠通知。TCP的可靠性通过以下方式来保证:1.超时重传:TCP每发送出一个报文段后,都会启动一个定时器,对目的端传回的确认信息进行确认计时原创 2012-04-26 03:18:54 · 4829 阅读 · 1 评论 -
HBase原子性保证
HBase提供基于单行数据操作的原子性保证即:对同一行的变更操作(包括针对一列/多列/多column family的操作),要么完全成功,要么完全失败,不会有其他状态原创 2014-07-14 22:53:52 · 13431 阅读 · 0 评论