- 博客(17)
- 资源 (5)
- 收藏
- 关注
转载 解剖Nginx·自动脚本篇(1)解析配置选项脚本 auto/options
解剖 Nginx ·自动脚本篇(1)解析配置选项脚本 auto/optionsAuthor: PoechantBlog: blog.CSDN.net/PoechantEmail: zhongchao.ustc#gmail.com (#->@)Date: March 4th, 2012Copyright © 柳大·Poechant在安装Nginx之前(即运行make脚本之前),首先是
2015-07-26 10:02:03 684
原创 TCP的可靠性
TCP保持可靠传输的方法:1)接收确认2)滑动窗口3)整体校验4)失序重排5)超时重传6)重复丢弃7)拥塞避退 1 减少报文数1>交互数据-----Nagle算法(多个小分组合并为一个分组,减少小分组数)2>成块数据-----经受时延的ACK(减少ACK报文数)2 发生拥塞1>慢启动+拥塞避免算法2>快速重传+快速恢复
2015-07-22 11:12:24 917
原创 Nginx之红黑树
/* * Copyright (C) Igor Sysoev * Copyright (C) Nginx, Inc. */#ifndef _NGX_RBTREE_H_INCLUDED_#define _NGX_RBTREE_H_INCLUDED_#include #include typedef ngx_uint_t
2015-07-21 21:16:00 1004
原创 操作系统之内存管理(一)
物理内存与虚拟内存我们知道,直接从物理内存读写数据要比从硬盘读写数据要快的多,因此,我们希望所有数据的读取和写入都在内存完成,而内存是有限的,这样就引出了物理内存与虚拟内存的概念。物理内存就是系统硬件提供的内存大小,是真正的内存,相对于物理内存,在Linux下还有一个虚拟内存的概念,虚拟内存就是为了满足物理内存的不足而提出的策略,它是利用磁盘空间虚拟出的一块逻辑内存,用作虚拟内存的磁盘空间
2015-07-11 11:39:51 1198
原创 C++模板实参推断
1 类型转换与模板实参1)自动转换的只有:const转换, 数组及函数到指针的转换注:不同大小相同元素类型是不同的类型2)相同模板参数名对应的实参类型必须相同3)不同模板参数名对应的实参类型可以不同,但必须兼容2 函数模板的返回值问题函数模板只会对函数参数列表的类型进行推断不会对返回值推断解决方法:1) 显示模板参数注: 显示指定了模板类型参数在类型转换
2015-07-08 22:25:19 1377
原创 STL之内存管理
STL的内存管理分为两级第一个级别用于较大内存分配与释放的管理(>128byte), malloc_alloc第二个级别用于小于128byte的内存管理,default_alloc1 diyi
2015-07-07 21:42:24 646
原创 STL之迭代器
1 迭代器的分类与特点1)input_iterator 只读2)output_iterator 只写 3)forward_iterator 允许写入型算法在这种迭代器区间进行读写操作
2015-07-07 19:14:33 630
原创 STL之迭代器失效问题
1 常见的STL容器标准STL序列容器:vector、string、deque和list。标准STL关联容器:set、multiset、map和multimap。非标准序列容器slist。slist是一个单向链表非标准关联容器hash_set、hash_multiset、hash_map和hash_multimap。几种标准非STL容器,stack、queue和priority
2015-07-06 16:44:28 745
原创 STL之关联容器的映射底层
STL的关联容器有set, map, multiset, multimap.用于实现它们的底层容器有划入标准的rb_tree和待加入标准的hashtable.底层容器rb_tree为上层容器提供了一种有序的服务.关键步骤时间复杂度为O(lgN);底层容器hashtable为上层容器提供的是无序的服务,但其关键步骤的时间复杂度为O(1).那么上层容器是怎么映射到底层容器中
2015-07-05 23:45:56 1029
原创 STL之rb_tree的find函数
1 通用的search方法STL在实现对特定key值的查找时,并没有采用通用的方法:BRTreeNode * rb_tree_search(RBTreeNode * x, int key){ while(x ! = NULL && x->key != key){ if( x->key > key){ x = x ->left; }else{ x = x->right
2015-07-05 20:52:55 1456
原创 STL之heap的make_heap函数
在看侯捷翻译的STL源码剖析时,发现关于heap这一节点错误,特此指出.1 make_heap源码template inline void make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last){ __make_heap(__first, __last, __
2015-07-04 10:09:43 4557
原创 STL之list的sort函数
list底层数据结构采用的是循环双向链表.同时,list并没采用algorithm提供的内置sort函数,而是自定义了一个sort成员函数.该sort,采用的是一种特殊的归并排序,支持的对大排序数为2^64-1.list的sort函数源码如下:template void list::sort(){ // Do nothing if the list has length 0
2015-07-03 17:10:05 614
原创 链表的插入操作总结
链表是一种常用的数据结构,有单链表, 双向链表及其循环链表之分.插入操作是链表的基本操作之一.但大部分人在初学时,多少会感到有些迷惑.下面时本人的一些小经验.1 后向插入和前向插入假设当前节点为P.后向插入是指在p节点后插入新节点.前向插入是指在p节点后插入新节点.对于单链表而言,只有后向插入.2 基本规律1) 先
2015-07-03 11:34:32 2331
原创 c++ 重载运算与类型转换
1 基本概念1.2 重载的运算符函数的调用方式1) 非成员函数的调用 operator+为对象data1, data2的非成员函数data1 + data2; ==> operator+(data1 , data2);2) 成员函数的调用 operator+为对象data1的成员函数data1 + data2 ==> d
2015-07-02 20:57:54 1012
转载 关于原码,反码,补码和左右移位的若干思考
1.为什么要使用原码,反码,补码1)负数二进制怎么表示?答:在原码中,高位为1就表示负数2)计算机如何实现减法?1-1=?答:对于计算机,逻辑运算应该设计的简单,1-1可以表示为1+(-1),故没有减法,用加法实现减法。1 - 1 = 1 + (-1) = [00000001]原 + [10000001]原 = [1000
2015-07-02 15:12:28 630
原创 网络基础(2)--通信过程之一HTTP协议
从在浏览器中输入一个网址如www.baidu.com到百度首页呈现的过程,大致可以简单的分为以下几个关键的部分:1) 封装HTTP请求2) DNS, 获取www.baidu.com对应的IP地址.3) ARP 获取IP对应的MAC地址4) TCP链接5) HTTP响应6) 浏览器解析与渲染注:有些部分可能同时存在.本篇将从其中涉及的HTTP, DNS, ARP,TC
2015-07-02 10:14:27 852
原创 网络基础篇(一)--TCP/IP协议族
TCP/IP协议族是一个分层,多协议通信体系.1 TCP/IP协议族体系结构TCP/IP协议族自底而上分为四层: 数据链路层, 网络层, 传输层和应用层.1.1 数据链路层实现网卡接口的网络驱动程序,以处理数据在物理媒介(如,以太网, 令牌环)上的传输.常用协议: ARP协议和RARP协议1.2 网络层实现数据包的选路和转发.采用逐跳通信方式.常
2015-07-02 09:31:08 1003 1
基于Pcap文件的TCP性能分析
2014-06-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人