自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

转载 红黑树实现Map

红黑树是一种类平衡树, 但它不是高度的平衡树, 但平衡的效果已经很好了. 为什么不用 AVL 树作为底层实现, 那是因为 AVL 树是高度平衡的树, 而每一次对树的修改, 都要 rebalance, 这里的开销会比红黑树大. 红黑树插入只要两次旋转, 删除至多三次旋转. 但不可否认的是, AVL 树搜索的效率是非常稳定的. 选取红黑树, 我认为是一种折中的方案红黑树是一种比较宽泛化的平

2015-10-31 08:16:50 3527 1

转载 STL容器效率比较

1、vector变长一维数组,连续存放的内存块,有保留内存,堆中分配内存;支持[]操作,高效率的随机访问;在最后增加元素时,一般不需要分配内存空间,速度快;在中间或开始操作元素时要进行内存拷贝效率低;vector高效的原因在于配置了比其所容纳的元素更多的内存,内存重新配置会花很多时间;注:需要高效的随即存取,而不在乎插入和删除使用vector。 2、list双向

2015-10-31 08:06:17 533

转载 各种排序算法比较

排序算法汇总总结一、插入排序 直接插入排序(Insertion Sort)的算法描述是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用in-place排序(即只需用到O(1)的额外空间的排序),因而在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。

2015-10-31 08:00:36 507

原创 推荐一个学习linux 命令比较好多方式

原文地址:http://www.cnblogs.com/peida/tag/%E6%AF%8F%E6%97%A5%E4%B8%80linux%E5%91%BD%E4%BB%A4/default.html?page=1注:像这位仁兄一样每天一个命令工具的学习总结,对自己的进步应该很有帮助!

2015-10-27 11:14:23 348

原创 Linux性能工具

感觉这个框架比较好,后面再按照这个思路详细的收集一下每个工具的用法分析工具初级工具列表基本攻击分布图中级工具列表高级工具列表

2015-10-27 11:12:47 378

原创 linux性能分析工具总结(初级工具篇)

1.uptimeuptime命令是用来查询linux系统负载的!用法:直接输入uptime即可.另外还有一个参数 -V(大写),是用来查询版本的procps是一个实用程序包,主要包括ps top kill等程序主要用来显示与控制一些系统信息,进程状态之类的内容。以下显示输入uptime的信息:04:03:58 up 10 days, 13:19, 1

2015-10-27 09:43:38 4044

转载 linux后台开发常用调试工具

一、编译阶段nm                 获取二进制文件包含的符号信息strings           获取二进制文件包含的字符串常量strip               去除二进制文件包含的符号readelf           显示目标文件详细信息objdump         尽可能反汇编出源代码addr2line        根

2015-10-23 14:35:24 1139

转载 Linux内存调试工具—Valgrind

一  valgrind是什么?Valgrind是一套Linux下,开放源代码(GPL V2)的仿真调试工具的集合。Valgrind由内核(core)以及基于内核的其他调试工具组成。内核类似于一个框架(framework),它模拟了一个CPU环境,并提供服务给其他工具;而其他工具则类似于插件 (plug-in),利用内核提供的服务完成各种特定的内存调试任务。Valgrind的体系结构

2015-10-23 14:20:42 679

转载 Linux服务器性能测试工具介绍

前言作为服务器开发人员,对性能应该非常的敏感,在服务器设计和编码时就应该充分考虑到性能问题,但如果写出来的程序,或者已经存在的程序在运行中出现了性能问题,我们又如何下手去找出问题并解决呢?这不仅靠的是经验,还需要借助一些工具来辅助分析。本文将以一个实例为样本,介绍几款linux下常用的性能分析工具的使用以及各自的优缺点,请注意如无特别说明,本文出现的环境均为linux环境。Linux下

2015-10-23 14:08:57 3984

转载 socket的发送与接收缓冲区

应用程序可通过调用send(write, sendmsg等)利用tcp socket向网络发送应用数据,而tcp/ip协议栈再通过网络设备接口把已经组织成struct sk_buff的应用数据(tcp数据报)真正发送到网络上,由于应用程序调用send的速度跟网络介质发送数据的速度存在差异,所以,一部分应用数据被组织成tcp数据报之后,会缓存在tcp socket的发送缓存队列中,等待网络空闲时

2015-10-22 17:23:53 11360

转载 Makefile自动生成工具-----autotools的使用(详细)

相信每个学习Linux的人都知道Makefile,这是一个很有用的东西,但是编写它是比较复杂,今天介绍一个它的自动生成工具,autotools的使用。很多GNULinux的的软件都是用它生成Makefile的,包括我们非常熟悉的Linux内核源代码。  1、准备:  需要工具  autoscan  aclocal  autoheader 

2015-10-21 18:09:52 1121

转载 使用VS2013+VisualGDB开发Linux程序图文教程

Linux程序开发变得越来越多,越来越多的程序、产品需要跨平台,甚至有些开源项目只支持Linux平台,所以掌握Linux开发变得越来越重要。但是对于习惯了Windows下的开发,使用了VS这个宇宙第一IDE后,觉得Linux下的纯命令行开发调试,还是有些不习惯,效率有些低(大神除外)。那么能不能用VS来开发调试Linux程序呢,经过各种查找,找到了VisualGDB这个神奇的插件,通过VS

2015-10-21 15:37:08 5250

转载 g++参数介绍

gcc and g++分别是gnu的c & c++编译器   gcc/g++在执行编译工作的时候,总共需要4步   1.预处理,生成.i的文件      预处理器cpp2.将预处理后的文件不转换成汇编语言,生成文件.s      编译器egcs3.有汇编变为目标代码(机器代码)生成.o的文件    汇编器as4.连接目标代码,生成可执行程序   

2015-10-21 10:09:27 366

原创 学习Makefile最好的教材

http://wiki.ubuntu.org.cn/%E8%B7%9F%E6%88%91%E4%B8%80%E8%B5%B7%E5%86%99Makefile

2015-10-21 10:07:59 545

转载 GCC优化选项简单说明

gcc默认提供了5级优化选项的集合:-O0:无优化(默认)-O和-O1:使用能减少目标文件大小以及执行时间并且不会使编译时间明显增加的优化.在编译大型程序的时候会显著增加编译时内存的使用.-O2: 包含-O1的优化并增加了不需要在目标文件大小和执行速度上进行折衷的优化.编译器不执行循环展开以及函数内联.此选项将增加编译时间和目标文件的执行性能.-Os:专门优化目标文

2015-10-21 10:06:46 437

转载 值得推荐的C/C++框架和库

值得学习的C语言开源项目- 1. Webbench Webbench是一个在linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力。Webbench使用C语言编写, 代码实在太简洁,源码加起来不到600行。下载链接:http://home.tiscali.

2015-10-20 11:39:05 517

转载 http 错误代码表

所有 HTTP 状态代码及其定义。  代码  指示  2xx  成功  200  正常;请求已完成。  201  正常;紧接 POST 命令。  202  正常;已接受用于处理,但处理尚未完成。  203  正常;部分信息 — 返回的信息只是一部分。  204  正常;无响应 — 已接收请求,但不存在要回送的信息。  3xx  重定向  301  已移动 — 请

2015-10-19 11:35:34 333

原创 进程与线程

一.进程与线程的区别进程是程序执行时的一个实例,即它是程序已经执行到课中程度的数据结构的汇集。从内核的观点看,进程的目的就是担当分配系统资源(CPU时间、内存等)的基本单位。线程是进程的一个执行流,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。一个进程由几个线程组成(拥有很多相对独立的执行流的用户程序共享应用程序的大部分数据结构),线程与同属一个进程的其他的线

2015-10-18 22:07:10 358

转载 Linux流量监控工具

类Unix系统中可以使用top查看系统资源、进程、内存占用等信息。查看网络状态可以使用netstat、nmap等工具。若要查看实时的网络流量,监控TCP/IP连接等,则可以使用iftop。一、iftop是什么?iftop是类似于top的实时流量监控工具。官方网站:http://www.ex-parrot.com/~pdw/iftop/二、iftop有什么用?

2015-10-18 21:10:34 637

转载 Linux strace命令

简介strace常用来跟踪进程执行时的系统调用和所接收的信号。 在Linux世界,进程不能直接访问硬件设备,当进程需要访问硬件设备(比如读取磁盘文件,接收网络数据等等)时,必须由用户态模式切换至内核态模式,通 过系统调用访问硬件设备。strace可以跟踪到一个进程产生的系统调用,包括参数,返回值,执行消耗的时间。输出参数含义root@ubuntu:/usr# strac

2015-10-18 21:07:16 276

转载 Linux vmstat命令实战详解

vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。这个命令是我查看Linux/Unix最喜爱的命令,一个是Linux/Unix都支持,二是相比top,我可以看到整个机器的CPU,内存,IO的使用情况,而不是单单看到各个进程的CPU使用率和内存使用率(使用场景不一样)。一般vmst

2015-10-18 21:04:27 289

转载 tcpdump常用命令

按照2G一个报文存储网卡流量命令如下:tcpdump -i eth0 -s 0 tcp port 80 -w test.pcap -C 2000合并数据包命令如下:mergecap.exe -a D:/*.pcap -w d:/test.pcap  tcpdump 命令详解:名称 (NAME)tcpdump - 转储网络上的数据流   总

2015-10-18 20:56:35 626

转载 free -M解读

如下显示free是显示的当前内存的使用,-m的意思是M字节来显示内容.我们来一起看看.$ free -mtotal used free shared buffers cachedMem: 1002 769 232 0 62 421-/+ buffers/cache: 286 715Swap: 1153 0 1153第一部分Mem行:total 内存总数: 1002M

2015-10-15 09:27:01 1126

转载 select、poll、epoll之间的区别总结

select,poll,epoll都是IO多路复用的机制。I/O多路复用就通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。但select,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件就绪后自己负责进行读写,也就是说这个读写过程是阻塞的,而异步I/O则无需自己负责进行读写,异步I/O的实现会负责把数据从内核拷贝到用

2015-10-13 22:22:06 362

转载 sizeof和C++类的问题

1.sizeof一个空类大小是多  12.sizeof一个带构造和析构函数的类  13.sizeof一个虚函数的类 4

2015-10-13 22:16:11 360

转载 流量控制和拥塞控制

TCP的流量控制1. 利用滑动窗口实现流量控制    如果发送方把数据发送得过快,接收方可能会来不及接收,这就会造成数据的丢失。所谓流量控制就是让发送方的发送速率不要太快,要让接收方来得及接收。    利用滑动窗口机制可以很方便地在TCP连接上实现对发送方的流量控制。    设A向B发送数据。在连接建立时,B告诉了A:“我的接收窗口是 rwnd = 400 ”(这里

2015-10-13 21:50:11 533

转载 关于面试经常被问到的socket的TIME_WAIT状态的原因及解决办法和避免的办法

一.出现原因TCP连接的终止 TCP建立一个连接至少需要交换三个分组,也因此称之为TCP的三路握手(three-way handshake),然而在TCP终止连接时,由于双方都需要发送一个FIN分节给对端确认,因此TCP终止连接一般是需要交换四个分节。具体来看: 1、 应用进程(active close)首先调用close,于是导致TCP发送一个FIN分节,表示数据已分送完毕,请求

2015-10-13 21:17:49 8073

空空如也

空空如也

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

TA关注的人

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