自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

hairetz的专栏

My heart is Blue

  • 博客(126)
  • 资源 (11)
  • 收藏
  • 关注

转载 漫谈linux之文件IO篇

同事的文章,觉得写得很清晰,收藏了。在Linux 开发中,有几个关系到性能的东西,技术人员非常关注:进程,CPU,MEM,网络IO,磁盘IO。本篇文件打算详细全面,深入浅出。剖析文件IO的细节。从多个角度探索如何提高IO性能。本文尽量用通俗易懂的视角去阐述。不copy内核代码。 阐述之前,要先有个大视角,让我们站在万米高空,鸟瞰我们的文件IO,它们设计是分层的,分层有2个好处,一是

2014-01-23 14:32:20 7827

原创 string.h的strcmp的性能比较

string.h基于汇编实现strcmp ,和普通strcmp,针对循环调用次数和字符串查找长度2个纬度做了一次性能对比效测试。#include #include #include #include #include #include #include #include #include #include #include #include #include

2014-01-14 15:27:20 9966

转载 Linux 内核的排队自旋锁(FIFO Ticket Spinlock)

转自:http://www.ibm.com/developerworks/cn/linux/l-cn-spinlock/index.html?utm_source=twitterfeed&utm_medium=twitter引言自旋锁(Spinlock)是一种 Linux 内核中广泛运用的底层同步机制。自旋锁是一种工作于多处理器环境的特殊的锁,在单处理环境中自旋锁的操作

2014-01-14 14:23:24 6881

转载 (转)理解(Memory Reordering)从JVM并发看CPU内存指令重排序

这两天,我拜读了 Dennis Byrne 写的一片博文?Memory Barriers and JVM Concurrency (中译文?内存屏障与JVM并发)。文中提到:对主存的一次访问一般花费硬件的数百次时钟周期。处理器通过缓存(caching)能够从数量级上降低内存延迟的成本这些缓存为了性能重新排列待定内存操作的顺序。也就是说,程序的读写操作不一定会按照它要求处理器

2014-01-13 21:23:19 6602

原创 Impact of cpu cache lines验证

http://igoro.com/archive/gallery-of-processor-cache-effects/此文提到Example 1: Memory accesses and performanceHow much faster do you expect Loop 2 to run, compared Loop 1?int[] arr = new i

2014-01-13 16:35:33 6778

原创 怎样把 Snappy安装配置到自定义目录

1.去官网http://code.google.com/p/snappy/下载snappy-1.1.1.tar.gz安装包。2.加压到指定目录cd ~/snappytar -zxvf snappy-1.1.1.tar.gzcd snappy-1.1.1./configuremake此时打住,如果继续make install,相关的库会被安装到/usr/loc

2014-01-09 20:36:46 11154

转载 (转)从缓冲上看阻塞与非阻塞socket在发送接收上的区别

最近在网络上看到一些帖子以及回复,同时又搜索了一些网络上关于阻塞非阻塞区别的描述,发现很多人在描述两者的发送接收时操作返回以及缓冲区处理的区别时有不同程度的误解。所以我想写一篇文章来纠正错误,并作为记录方便查阅,如有转载,注明作者(jwybobo2007)以及出处即可。  首先socket在默认情况下是阻塞状态的(未指异步操作以及其它一些特殊用途下,直接默认为非阻塞),这就使得发送以及接收

2014-01-07 20:31:42 19001 2

转载 管理处理器的亲和性(affinity)

转自:http://www.ibm.com/developerworks/cn/linux/l-affinity.html简单地说,CPU 亲和性(affinity) 就是进程要在某个给定的 CPU 上尽量长时间地运行而不被迁移到其他处理器的倾向性。Linux 内核进程调度器天生就具有被称为 软 CPU 亲和性(affinity) 的特性,这意味着进程通常不会在处理器之间频繁迁

2013-12-25 16:22:12 5682

转载 linux kernel中如何保证append写的原子性

转载自pagefault先来描述一下,write系统调用的大体流程,首先内核会取得对应的文件偏移,然后调用vfs的write操作,而在vfs层的write操作的时候会调用对应文件系统的write方法,而在对应文件系统的write方法中aio_write方法,最终会调用底层驱动。这里有一个需要注意的就是内核在写文件的时候会加一把锁(有些设备不会加锁,比如块设备以及裸设备).这样也

2013-12-24 13:11:01 10634

原创 (转)Linux 中的汇编语言

Linux 中的汇编语言 在阅读 Linux 源代码时,你可能碰到一些汇编语言片段,有些汇编语言出现在以.S为扩展名的汇编文件中,在这种文件中,整个程序全部由汇编语言组成。有些汇编命令出现在以.c 为扩展名的 C 文件中,在这种文件中,既有 C 语言,也有汇编语言,我们把出现在 C 代码中的汇编语言叫所“嵌入式”汇编。不管这些汇编代码出现在哪里,它在一定程度上都成为阅读源代码的

2013-12-23 20:31:23 18953 1

转载 libev 源码浅析

libev是一个开源的事件驱动库,基于epoll,kqueue等OS提供的基础设施。其以高效出名,它可以将IO事件,定时器,和信号统一起来,统一放在事件处理这一套框架下处理。 libev的基本使用方法如下:123456789101112131415

2013-12-13 16:41:21 8766

转载 日志结构的kv存储——Bitcask

转自:http://blog.nosqlfan.com/html/955.htmlBitcask是一个日志型的基于hash表结构和key-value存储模型:Bitcask的一些基本特征:1.   key/value以日志的形式按顺序存储,只能追加(append-only)写入key/value,每次写操作都是顺序写入。当某个key所对应的value

2013-12-06 19:55:28 10567

转载 AWK 简明教程

最近在系统的补awk,mark一篇http://coolshell.cn/articles/9070.html有一些网友看了前两天的《Linux下应该知道的技巧》希望我能教教他们用awk和sed,所以,出现了这篇文章。我估计这些80后的年轻朋友可能对awk/sed这类上古神器有点陌生了,所以需要我这个老家伙来炒炒冷饭。况且,AWK是贝尔实验室1977年搞出来的文本出

2013-12-02 17:52:32 8667

转载 无锁队列的实现

本文转自:http://coolshell.cn/articles/8239.html陈大师的文章关于无锁队列的实现,网上有很多文章,虽然本文可能和那些文章有所重复,但是我还是想以我自己的方式把这些文章中的重要的知识点串起来和大家讲一讲这个技术。下面开始正文。关于CAS等原子操作在开始说无锁队列之前,我们需要知道一个很重要的技术就是CAS操作——Comp

2013-11-22 21:08:41 20015

转载 (转)Linux进程的睡眠和唤醒, 真正搞懂了吗?

1 Linux进程的睡眠和唤醒在Linux中,仅等待CPU时间的进程称为就绪进程,它们被放置在一个运行队列中,一个就绪进程的状态标志位为TASK_RUNNING。一旦一个运行中的进程时间片用完, Linux 内核的调度器会剥夺这个进程对CPU的控制权,并且从运行队列中选择一个合适的进程投入运行。当然,一个进程也可以主动释放CPU的控制权。函数schedule()是一个调度函数,它可以被一个

2013-11-22 20:42:59 14738

转载 进程、线程和协程的理解

进程、线程和协程的理解进程、线程和协程之间的关系和区别也困扰我一阵子了,最近有一些心得,写一下。进程拥有自己独立的堆和栈,既不共享堆,亦不共享栈,进程由操作系统调度。线程拥有自己独立的栈和共享的堆,共享堆,不共享栈,线程亦由操作系统调度(标准线程是的)。协程和线程一样共享堆,不共享栈,协程由程序员在协程的代码里显示调度。进程和其他两个的区别还是很明显的。

2013-11-14 17:13:19 55701 6

转载 linux 向外TCP最大连接只能打开28232个端口限制tuning(转)

from:http://hi.baidu.com/zknehycmrobrtvd/item/12fdf54dcae951e01381da92可能牛人都知道怎么设置,只不过将解决思路记录一下。性急的人看最后3行就行了。因为想测试一下java mustang(jdk1.6)使用epoll的性能,Tim最近写了一个Java NIO的client在linux去连服务器,原理上一个cli

2013-06-25 23:37:43 7507

转载 (转)Linux下使用system()函数,谨慎使用

转自:http://my.oschina.net/renhc/blog/53580曾经的曾经,被system()函数折磨过,之所以这样,是因为对system()函数了解不够深入。只是简单的知道用这个函数执行一个系统命令,这远远不够,它的返回值、它所执行命令的返回值以及命令执行失败原因如何定位,这才是重点。当初因为这个函数风险较多,故抛弃不用,改用其他的方法。这里先不说我用了什么

2012-11-08 19:39:13 16955 1

转载 查看库中的符号nm

转自:http://my.opera.com/yangguangxiang/blog/show.dml/138851有时候可能需要查看一个库中到底有哪些函数,nm命令可以打印出库中的涉及到的所有符号。库既可以是静态的也可以是动态的。nm列出的符号有很多,常见的有三种,一种是在库中被调用,但并没有在库中定义(表明需要其他库支持),用U表示;一种是库中定义的函数,用T表示,这是最常见的;另外一

2012-10-17 17:16:17 7458

转载 怎样写出令人抓狂的代码——全攻略(献给那些写代码纯图省事的亲们)

这篇文章的原文在这里(http://mindprod.com/jgloss/unmain.html),我看完后我想说——什么叫“创造力”,创造力就是——就算是要干一件烂事都能干得那么漂亮那么有创意的能力。 什么叫“抓狂”,抓狂就是——以一种沉着老练的不屈不挠的一本正经的精神一点一点把你推向崩溃的边缘。 我把文章节选了一些,也并没有完全翻译,简译一下,也加入了一些自己的调侃。对于有下面这

2012-08-27 19:45:51 9269 3

转载 数学之美系列二十一 - 布隆过滤器(Bloom Filter)(转)

转自:http://www.google.com.hk/ggblog/googlechinablog/2007/07/bloom-filter_7469.html数学之美系列二十一 - 布隆过滤器(Bloom Filter)2007年7月3日 上午 09:35:00发表者:Google(谷歌)研究员 吴军 在日常生活中,包括在设计计算机软件时,我们经常要判断一个元素

2012-03-14 18:09:30 2006

转载 各排序算法效率图

转自http://www.cnitblog.com/houcy/archive/2009/07/24/60349.html

2012-01-17 15:19:21 1868

转载 正则表达式30分钟入门教程

本文转自:http://www.oicto.com/html/regex.htm#resources 目录跳过目录本文目标 如何使用本教程 正则表达式到底是什么东西? 入门 测试正则表达式 元字符 字符转义 重复 字符类 分枝条件 反义 分组 后向引用 零宽断

2011-08-11 14:55:23 1460

转载 其实Unix很简单

本文转自陈皓的博客:http://blog.csdn.net/haoel/article/details/1533720 其实Unix很简单 陈皓 很多编程的朋友都在网上问我这样的几个问题,Unix怎么学?Unix怎么这么难?如何才能学好?并且让我给他们一

2011-08-04 16:43:52 1812 2

转载 头文件不宜定义变量原因解析

转自:http://hi.baidu.com/zengzhaonong/blog/item/8c10e90366c2bf733912bbb0.html            http://blog.csdn.net/wzsbll/article/details/6655919

2011-07-28 10:09:12 3605

转载 sendfile优化文件拷贝

原文地址:http://www.vpsee.com/2009/07/linux-sendfile-improve-performance/现在流行的 web 服务器里面都提供 sendfile 选项用来提高服务器性能,那到底 sendfile 是什么,怎么影响性能的呢?sendfile 实际上是 Linux 2.0+ 以后的推出的一个系统调用,web 服务器可以通过调整自身的配置来决定是否

2011-06-16 19:16:00 7544

原创 一道关于c++拷贝构造与=运算符的题目

class A{public: A() { printf(" A "); } ~A() { printf(" ~A "); }};class B{public: B(A &a):_a(a) { printf(" B "); }

2011-06-15 20:35:00 2341 2

原创 (转)迅雷C++试题及解答

 1.下列程序的输出结果为:(B)#includevoid main(){       char* a[ ] = { "hello", "the", "world"};       char** pa = a;       pa++;       cout}A) theworld    B) the   C) ello    D) ellotheworld 2. 已

2011-06-13 21:53:00 4109 4

转载 (转)c++操作符重载

<br />http://www.cppblog.com/shongbee2/archive/2009/04/01/78554.aspx<br /> <br />只转链接,save~!

2011-06-01 23:31:00 1460

转载 (转)Linux服务器性能评估与优化

转载:http://www.517sou.net/Article/104.aspx一、影响Linux服务器性能的因素 1. 操作系统级Ø       CPU Ø       内存Ø       磁盘I/O带宽Ø       网络I/O带宽2.        程序应用级二、系统性能评估标准影响性能因素 评判标准好 坏 糟糕CPU user% + sys% user% + sys%= 85% user% + sys% >=90% 内存 Swap In(si)=0Swap Out(so)=0 Per CPU wi

2011-05-16 16:40:00 1768 2

转载 (转)PHP HipHop实战之安装篇

<br />原文链接:http://blog.liubijian.com/hiphop-php-install.html<br /> <br />觉得有用,保存。。。<br /> <br /> <br />背景:HipHop是Facebook在今年早些时候放出的一个php开源项目,主要的特征就是把php翻译成了c++执行,HipHop所带来的性能提升用Facebook官方博客上项目负责人赵海平的话说:<br />With HipHop we’ve reduced the CPU usage on our W

2011-04-29 16:53:00 3531 1

原创 一道关于字符串逆序的笔试题

<br />某同学在网上留的笔试题如下:<br />函数实现将网址进行如下操作<br />www.google.com转成com.google.www 及mail.netease.com转成com.netease.mail<br /><br />不允许用STL,空间为0(1)<br /><br />思路如下:<br />1.先对每个被'.'隔开的单词都逆序一次。<br />2.对整个串再逆序一次。<br /> <br /> <br />//对ptr从iStart开始iNum字符,进行逆转void rev

2011-04-27 21:04:00 2763 1

原创 (转)/etc/ld.so.conf和ldconfig, PKG_CONFIG_PATH

<br />http://dev.firnow.com/course/6_system/linux/Linuxjs/200874/130190.html<br /> <br />首先说下/etc/ld.so.conf: <br />这个文件记录了编译时使用的动态链接库的路径。<br />默认情况下,编译器只会使用/lib和/usr/lib这两个目录下的库文件<br />如果你安装了某些库,比如在安装gtk+-2.4.13时它会需要glib-2.0 >= 2.4.0,辛苦的安装好glib后<br />没有指定

2011-04-27 16:18:00 8210

转载 (转)poll, select & epoll 原理比较分析

原文地址:http://www.cnblogs.com/sharra/archive/2010/12/30/1921287.html因为需要了解底层设备访问的原理,所以惯用高层应用语言的我,需要了解一下Linux的设备访问机制,尤其是处理一组非阻塞IO的原理方法,标准的术语好像是叫多路复用。以下文章部分句子有引用之处,恕没有一一指出出处。 <br /> <br />对于接触过Linux内核或设备驱动开发的读者,一定清楚poll和select系统调用,以及从2.5版本引入的epoll机制(epoll机制包含三

2011-04-21 10:05:00 4619

原创 大数运算——加法,减法,乘法

<br />尝试实现了下大数运算的代码。<br />原理就是用int型数组模拟一个大数的每个位。<br />数组的[0]对应的大数的个位。<br /> <br /> <br />具体代码如下,主要考虑大于10的元素要进位,负数要借位。<br /> <br />#include <iostream>#include <algorithm>#include <stdio.h>#include <string.h>using namespace std;#define MAX_DIGI

2011-04-08 20:04:00 13420 4

转载 sockaddr与sockaddr_in比较

<br />struct  sockaddr {<br />unsigned short int  sa_family; /* address family, AF_xxx */<br />char sa_data[14];  /* address */<br />};<br />sa_family是地址家族,是“AF_xxx”的形式。常设为“AF_INET”,代表Internet(TCP/IP)地址族。<br />sa_data是协议地址,由sa_family决定。如果sa_family=AF_INET,

2011-03-25 12:27:00 3999

转载 (转)TCP状态转移图学习总结

<br />这是网络编程的基础,tcp的状态转移图说到底就是一个状态机的不同状态之间的转换关系以及触发这些状态需要的条件,一共存在11个状态,我们来逐一分析: <br /><br />1.CLOSED:起始点,在超时或者连接关闭时候进入此状态。 <br />2.LISTEN:svr端在等待连接过来时候的状态,svr端为此要调用socket, bind,listen函数,就能进入此状态。此称为应用程序被动打开(等待客户端来连接)。 <br />3.SYN_SENT:客户端发起连接,发送SYN给服务器端。如果服

2011-03-03 19:26:00 2880

转载 (转)神马是UTF-8

<br />本文转自:http://www.ruanyifeng.com/blog/2007/10/ascii_unicode_and_utf-8.html<br /> <br />今天中午,我突然想搞清楚Unicode和UTF-8之间的关系,于是就开始在网上查资料。<br />结果,这个问题比我想象的复杂,从午饭后一直看到晚上9点,才算初步搞清楚。<br />下面就是我的笔记,主要用来整理自己的思路。但是,我尽量试图写得通俗易懂,希望能对其他朋友有用。毕竟,字符编码是计算机技术的基石,想要熟练使用计算机,

2011-02-22 16:07:00 1467

原创 (转)GDB Tips

<br />http://hi.baidu.com/comcat/blog/item/c51313105b1bed05203f2ea6.html<br /> <br />1. 查看寄存器<br /><br />(gdb) i r<br />(gdb) i r a                     # 查看所有寄存器(包括浮点、多媒体)<br />(gdb) i r esp<br />(gdb) i r pc<br /><br /><br />2. 查看内存<br /><br />(gdb) x /wx

2011-01-31 11:08:00 3033

转载 (转)multipart form-data boundary 说明

原文链接:http://yefeng.javaeye.com/blog/315847含义 ENCTYPE="multipart/form-data" 说明: <br />通过 http 协议上传文件 rfc1867协议概述,jsp 应用举例,客户端发送内容构造 <br /><br />1、概述在最初的 http 协议中,没有上传文件方面的功能。 rfc1867 (http://www.ietf.org/rfc/rfc1867.txt) 为 http 协议添加了这个功能。客户端的浏览器,如 Microsoft

2010-12-01 15:30:00 22645 3

PHP设计模式_中文版.chm

各种主流设计模式的PHP代码实现。 chm格式,便于阅读,拷贝。 好东西。

2009-08-18

深入浅出visualc++ dll制作编程.pdf

超级清晰的pdf,深入浅出dll制作。 图文结合,王道级的文档,高手勿下,谢谢。

2009-08-17

JavaScript.设计模式

JavaScript.设计模式 高质量的pdf,所有内容都可以直接复制。

2009-07-31

php程序设计中文版

Oreilly出版,精品保证。 学PHP入门的好教材。

2009-07-23

新手入门HTML教程.chm

入门的好东东,chm格式,比pdf方便好用得多。 不多说了,下了不亏。

2009-07-20

C++ GUI Programming with Qt 4

QT入门的经典,全是小例子的样式。 可以单章独立学习。

2009-05-21

部分外企笔试真题总结.pdf

包括微软,IBM,CICC,Intel,Cisco,Oracle,SAP等多家知名公司的笔试真题。 值得一看。

2009-05-10

程序员面试宝典(全).pdf

程序员面试宝典(全).pdf 准备面试的好东东啊

2009-05-10

C++ Primer(第4版)习题解答(完整版).pdf

好东西。不多说,自己看。 中文答案,完整版,2分一个吧。

2009-05-08

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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