自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

编程的本质是数学问题

学源码是最快的学习方法

  • 博客(23)
  • 收藏
  • 关注

原创 修改Linux内核参数提高服务器并发能力

1.参数设置查看相关的参数sysctl -a|grep tcp_keepalivenet.ipv4.tcp_keepalive_intvl = 30net.ipv4.tcp_keepalive_probes = 2net.ipv4.tcp_keepalive_time = 160设置相关的参数sysctl -w net.ipv4.tcp_keepalive_time =

2013-03-31 17:43:19 21545 1

原创 PHP FPM设置

假设安装时复制php-fpm文件到php安装目录# cp -R ./sapi/fpm/php-fpm.conf /usr/local/php/etc/php-fpm.conf那么php-fpm.conf位于# /usr/local/php/etc/php-fpm目前主要又两个分支,分别对应于php-5.2.x的版本和php-5.3.x的版本。在5.2.x的版本中,php

2013-03-31 16:16:31 2793

原创 bzero, memset ,setmem 区别

bzero  原型:extern void bzero(void *s, int n);用法:#include     功能:置字节字符串s的前n个字节为零。    说明:bzero无返回值。    举例:       // bzero.c                   #include        #include        int main()

2013-03-29 18:03:48 1127

原创 Linux socket 网络编程 常用头文件

一 三种类型的套接字:1.流式套接字(SOCKET_STREAM)提供面向连接的可靠的数据传输服务。数据被看作是字节流,无长度限制。例如FTP协议就采用这种。2.数据报式套接字(SOCKET_DGRAM)提供无连接的数据传输服务,不保证可靠性。3.原始式套接字(SOCKET_RAW)该接口允许对较低层次协议,如IP,ICMP直接访问。二 基本套接字系统调有有如下一些

2013-03-29 17:50:15 1021

原创 仿照redis写的nginx开机画面

1、获取文件的flags,即open函数的第二个参数:flags = fcntl(fd,F_GETFL,0);2、设置文件的flags:fcntl(fd,F_SETFL,flags);3、增加文件的某个flags,比如文件是阻塞的,想设置成非阻塞:flags = fcntl(fd,F_GETFL,0);flags |= O_NONBLOCK;fcntl(fd,F_SET

2013-03-29 17:48:37 1157

原创 Linux网络编程一步一步学-epoll同时处理海量连接的代码

#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define MAXBUF 1024#define MAXEPOLLSI

2013-03-28 16:28:23 950

原创 自己动手写HTTP服务--myhttpd

/** sol12.5.c ** ------------------------------------------------------------ A version of webserv that puts some typical CGI variables into the environment before calling exec is sol12.5.c. Thr

2013-03-26 23:01:13 1900

原创 Linux守护进程实现

Linux守护进程#include #include #include #include int daemonize(void){ int fd; switch(fork()) { case -1: return (-1); case

2013-03-20 22:56:14 1059

原创 结构体的两种声明方式:堆上和栈上以及在双链表的应用

一、头文件 gcc 在编译时寻找所需要的头文件 : ※搜寻会从-I开始 ※然后找gcc的环境变量 C_INCLUDE_PATH,CPLUS_INCLUDE_PATH,OBJC_INCLUDE_PATH (这些变量在windows下对应的是include环境变量)※再找内定目录 /usr/include /usr/local/include /usr/lib/gcc-

2013-03-17 22:00:29 2220

原创 linux下使用NetBeans调试libevent库

1.安装libevent参考:http://blog.csdn.net/unix21/article/details/8679269libevent安装在usr/local/libevent下2.安装netBeanshttp://www.netbeans.org3.配置netBeans1)打开项目的属性选项,选择包含目录,把/usr//local/lib

2013-03-17 17:18:55 1661

原创 Linux netstat命令

netstat命令是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息#netstat从整体上看,netstat的输出结果可以分为两个部分,一个是Active Internet connections,称为有源TCP连接,另一个是Active UNIX domain sockets,称为有源Unix域套接口。在上面的输

2013-03-17 10:39:24 1124

原创 Libevent调用

1.最基本的打印libevent版本#include #include int main(){ const char *version = event_get_version(); printf("%s\n",version); return 0;}# gcc getVersion.c -o getVersion -levent参考:htt

2013-03-16 23:33:48 1038

原创 Linux软连接和硬链接

1.Linux链接概念Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。默认情况下,ln命令产生硬链接。【硬连接】硬连接指通过索引节点来进行连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的。一

2013-03-16 22:36:30 826

原创 位图排序

位图排序是一种效率极高(复杂度可达O(n))并且很节省空间的一种排序方法,但是这种排序方法对输入的数据是有比较严格的要求(数据不能重复,大致知道数据的范围)。位图排序即利用位图或者位向量来表示集合。举个例子,假如有一个集合{3,5,7,8,2,1},我们可以用一个8位的二进制向量set[1-8]来表示该集合,如果数据存在,则将set相对应的二进制位置1,否则置0.根据给出的集合得到的set为{1,

2013-03-15 23:29:19 661

原创 Trie树

Trie树也称字典树,因为其效率很高,所以在在字符串查找、前缀匹配等中应用很广泛,其高效率是以空间为代价的。一.Trie树的原理利用串构建一个字典树,这个字典树保存了串的公共前缀信息,因此可以降低查询操作的复杂度。下面以英文单词构建的字典树为例,这棵Trie树中每个结点包括26个孩子结点,因为总共有26个英文字母(假设单词都是小写字母组成)。则可声明包含Trie树的结点信息的结构体

2013-03-15 22:57:38 953

原创 Linux环境网络库

安装libevent官网:http://libevent.org/    书籍:http://www.wangafu.net/~nickm/libevent-book/Libevent参考手册翻译:http://blog.csdn.net/laoyi19861011/article/category/831215Libevent参考手册翻译增加:http://blog.si

2013-03-15 18:55:06 1362

原创 TCMalloc:线程缓存的Malloc

转载自:http://shiningray.cn/tcmalloc-thread-caching-malloc.html作者:Sanjay Ghemawat, Paul Menage原文翻译:ShiningRay动机TCMalloc要比glibc 2.3的malloc(可以从一个叫作ptmalloc2的独立库获得)和其他我测试过的malloc都快。ptm

2013-03-13 10:34:55 941

原创 linux常用命令

#man  -k   函数         #man  返回的数字  函数# man -k file | grep umask格式化代码:# indent tinyfastcgi.c fprintf(stdout, "spawn-fcgi: waitpid返回值>>> %d\n", waitpid(child, &status, WNOHANG)); fprintf(s

2013-03-13 09:53:07 846

原创 自己写的哈希表以及解决哈希冲突

哈希表就是键值key-value对,使用hash函数让key产生哈希值,当不同的key产生相同的哈希值时就是哈希冲突了,产生哈希冲突可以使用拉链法。hash.c#include #include #include #include "hash.h"static unsigned int table_size[] = {7, 13, 31, 61, 127, 251, 509

2013-03-10 20:31:25 1195

原创 Redis队列的应用

很多书都说指针不是数组,但是似乎指针和数组又有某种联系。其实,指针是变量,数组也是变量,指针和数组本身不是一回事,有没有关系,但是因为指针和数组都会涉及地址,所以指针和数组可以互相转换!hash.c#include #include #include #include "hash.h"int main() { int i; struct hash_table *

2013-03-09 20:18:24 1037

原创 深入理解malloc和free

指针并非只指向一个变量,指针指向的是地址,也可以理解为数组的首地址。返回数组基本上都是使用返回指针的方式。不过需要注意的是,不要返回局部数组变量的指针,因为在函数运行结束后,栈空间将被释放,指针操作会很危险。可以用参数传递指针给函数,或者在函数中声明静态化局部变量或者使用全局变量等变通方法。p只是指向9个int大小的地址,但是却可以有p[0],p[1]等,但是p[10]也可

2013-03-07 10:57:08 1531

原创 自己写的单链表

link.c#include #include #include #include #include  "link.h"/** **  这是一个计算HASH值的算法 **/int time33(char* arKey,int arlength){    int h = 0;    int i;    for(i=0;i<arlength;i++){

2013-03-04 22:25:16 555

原创 利用Apache的ab命令做Benchmark性能测试

源码:http://code.google.com/p/flexihash/https://github.com/pda/flexihashconsisten_hash.class.php/*** Consisten Hashing**/class ConsistenHash {private $_targetNum = 0;

2013-03-01 11:08:54 554

空空如也

空空如也

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

TA关注的人

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