自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(747)
  • 资源 (15)
  • 收藏
  • 关注

转载 fork和exec的区别

1、fork()     一个程序一调用fork函数,系统就为一个新的进程准备了前述三个段,首先,系统让新的进程与旧的进程使用同一个代码段,因为它们的程序还是相同的,对于数据段和堆栈段,系统则复制一份给新的进程,这样,父进程的所有数据都可以留给子进程,但是,子进程一旦开始运行,虽然它继承了父进程的一切数据,但实际上数据却已经分开,相互之间不再有影响了,也就是说,它们之间不再共享任何数据了。而如

2017-08-17 22:07:49 13336

转载 C语言数组中的地址偏移问题

本文讨论在C/C++中,一维数组和二维数组中的地址偏移问题。一维数组 int a[3];二维数组 int a[3][3];1、先看一维数组的情况:[cpp] view plain copy#include     using namespace std;    int main()  {

2017-08-17 21:25:49 7190

转载 INT_MAX和INT_MIN注意事项

INT_MIN在标准头文件limits.h中定义。#define INT_MAX 2147483647#define INT_MIN (-INT_MAX - 1)1212在C/C++语言中,不能够直接使用-2147483648来代替最小负数,因为这不是一个数字,而是一个表达式。表达式的意思是对整数21473648取负,但是2147483648已经溢出了int的上限,所以定义为(-IN

2017-08-17 08:31:38 18296

转载 判定一棵二叉树是否是二叉搜索树

问题给定一棵二叉树,判定该二叉树是否是二叉搜索树(Binary Search Tree)?解法1:暴力搜索首先说明一下二叉树和二叉搜索树的区别。二叉树指这样的树结构,它的每个结点的孩子数目最多为2个;二叉搜索树是一种二叉树,但是它有附加的一些约束条件,这些约束条件必须对每个结点都成立:结点node的左子树所有结点的值都小于node的值。结点node的右子树所有结点的

2017-08-17 08:06:24 538

转载 linux性能问题(CPU,内存,磁盘I/O,网络)

一. CPU性能评估      1.vmstat  [-V]  [-n]  [depay  [count]]          -V : 打印出版本信息,可选参数          -n : 在周期性循环输出时,头部信息仅显示一次          delay : 两次输出之间的时间间隔          count : 按照delay指定的时间间隔统计的次数。默认是1  

2017-08-16 09:19:55 367

转载 accept与connect的超时设置

connect超时:我们都知道,connect对应与三次握手中的第一次发送SYN,而对待服务器的ACK,如果服务器没有启动服务器,有些机器会立刻返回一个RST表示服务器拒绝,从而connect失败,但又些服务器为了防止攻击,什么也不发送,直至客户端connect超时,而这一时间又75s,对于客户端来说是不能接收的。所以需要设置connect的超时时间。利用select设置conne

2017-08-13 17:49:24 1953

转载 connect()函数阻塞和非阻塞问题解决

建立socket后默认connect()函数为阻塞连接状态,在大多数实现中,connect的超时时间在75s至几分钟之间,想要缩短超时时间,可解决问题的两种方法:方法一、将socket句柄设置为非阻塞状态,方法二、采用信号处理函数设置阻塞超时控制。在一个TCP套接口被设置为非阻塞之后调用connect,connect会立即返回EINPROGRESS错误,表示连接操作正在进行中,但是仍未完成

2017-08-13 12:46:16 13587 3

转载 常用算法时间空间复杂度

Hi there! This webpage covers the space and time Big-O complexities of common algorithmsused in Computer Science.  When preparing for technical interviews in the past, I found myself spending hours cr

2017-08-10 21:51:31 2447

转载 C++ 线程安全的单例模式

废话不多说,常用的代码积淀下来。一、懒汉模式:即第一次调用该类实例的时候才产生一个新的该类实例,并在以后仅返回此实例。需要用锁,来保证其线程安全性:原因:多个线程可能进入判断是否已经存在实例的if语句,从而non thread safety.使用double-check来保证thread safety.但是如果处理大量数据时,该锁才成为严重的性能瓶颈。1、静态成员实例的懒汉模式:

2017-08-09 12:15:49 327

转载 C++最简洁的单例模式

想必每一位程序员都对设计模式中的单例模式非常的熟悉吧,以往我们用C++实现一个单例模式需要写以下代码:   1 class CSingleton 2 { 3 private: 4     CSingleton() //构造函数是私有的 5     { 6     } 7     static CSingleton *m_pInstance; 8 publ

2017-08-09 10:34:29 332

转载 C++的单例模式与线程安全单例模式(懒汉/饿汉)

1 教科书里的单例模式  我们都很清楚一个简单的单例模式该怎样去实现:构造函数声明为private或protect防止被外部函数实例化,内部保存一个private static的类指针保存唯一的实例,实例的动作由一个public的类方法代劳,该方法也返回单例类唯一的实例。  上代码:  123456

2017-08-09 09:43:29 207

转载 【C/C++】类中的const成员 static成员

const 数据成员const 数据成员只在某个对象生存期内是常量,而对于整个类而言却是可变的。因为类可以创建多个对象,不同的对象其 const 数据成员的值可以不同。所以不能在类声明中初始化 const 数据成员,因为类的对象未被创建时,编译器不知道const 数据成员的值是什么。 const 数据成员的初始化只能在类的构造函数的初始化表中进行。要想建立在整个类中都恒

2017-08-08 23:04:37 467

转载 Static关键字用法总结

Static关键字用法总结static关键字是C, C++中都存在的关键字。static从字面理解,是“静态的“的 意思,与此相对应的,应该是“动态的“。static的作用主要有以下3个:1、扩展生存期;2、限制作用域;3、唯一性;1、扩展生存期这一点主要是针对普通局部变量和static局部变量来说的。声明为static的局部变量

2017-08-08 22:46:00 2084

转载 [C/C++] static在C和C++中的用法和区别

转自:http://blog.csdn.NET/skyereeee/article/details/8000512static的三个作用:(1)局部静态变量(2)外部静态变量/函数(3)静态数据成员/成员函数前两种C和C++都有,第三种仅在C++中有,下面分别作以下介绍:一、局部静态变量在C/C++中,局部变量按照存储形式可分为三种auto,

2017-08-08 22:36:06 205

转载 Nginx-Lua模块的执行顺序及指令

Nginx-Lua模块的执行顺序一、nginx执行步骤nginx在处理每一个用户请求时,都是按照若干个不同的阶段依次处理的,与配置文件上的顺序没有关系,详细内容可以阅读《深入理解nginx:模块开发与架构解析》这本书,这里只做简单介绍;1、post-read读取请求内容阶段,nginx读取并解析完请求头之后就立即开始运行;2、server-rewriteserver

2017-08-08 08:17:17 1331

转载 nginx lua模块常用的指令

lua_code_cache语法:lua_code_cache on | off默认: on适用上下文:http、server、location、location if这个指令是指定是否开启lua的代码编译缓存,开发时可以设置为off,以便lua文件实时生效,如果是生产线上,为了性能,建议开启。lua_package_path语法:lua_package_path

2017-08-08 08:11:51 1706

转载 二叉树最近公共父节点

在二叉树中找近期公共父节点。分为两种情况,一种是有父指针,一种没有父指针。1、有父指针这样的情况比較简单。计算两个结点的深度,再把深度大的向上移。移到同一深度。在同一时候向上移动,直到两个结点同样,这样便找到了父节点。这个算法时间复杂度为O(N)。代码实现:#includestruct Node{ int data; Node* left; Nod

2017-08-07 19:18:20 576

转载 二叉树中两个节点的最近公共父节点

这个问题可以分为三种情况来考虑:情况一:root未知,但是每个节点都有parent指针此时可以分别从两个节点开始,沿着parent指针走向根节点,得到两个链表,然后求两个链表的第一个公共节点,这个方法很简单,不需要详细解释的。情况二:节点只有左、右指针,没有parent指针,root已知思路:有两种情况,一是要找的这两个节点(a, b),在要遍历的节点(root)的两侧,那么这

2017-08-07 19:04:11 2136

转载 有符号的整数-负数在内存的存放形式

有符号整数,正数的表示区间为:0x00000000-0x7FFFFFFF;负数的表示区间:0x80000000-0xFFFFFFFF。负数在内存中都是以补码的形式存放,补码的规则是用0减去这个数的绝对值。也可以表示为对这个数取反加1;为什么补码是对这个数取反加1呢?因为,X+X(反)=0xFFFFFFFF,于是X+X(反)+1=0,所以可以推导出0-X=X(反)+1;计算机

2017-08-07 10:40:00 1906

转载 linux IO 内核参数调优 之 原理和参数介绍

1.  page cachelinux操作系统默认情况下写都是有写缓存的,可以使用direct IO方式绕过操作系统的写缓存。当你写一串数据时,系统会开辟一块内存区域缓存这些数据,这块区域就是我们常说的page cache(操作系统的页缓存)。查看系统内存常用的命令有:vmstat、free、top等。可以使用 cat /proc/meminfo 查看详细的内存使用情况 

2017-08-01 11:54:21 529

转载 Linux 性能优化之 IO 子系统 系列 图

http://blog.sina.com.cn/s/articlelist_1029388674_11_1.html Linux 性能优化之 IO 子系统(一)本文介绍了对 Linux IO 子系统性能进行优化时需要考虑的因素,以及一些 IO 性能检测工具。本文的大部分内容来自 IBM Redbook - Linux Performance and Tuning G

2017-08-01 11:38:37 1322

转载 CPU绑定技术

1 概念            什么是CPU Affinity?Affinity是进程的一个属性,这个属性指明了进程调度器能够把这个进程调度到哪些CPU上。            在Linux中,我们可以利用CPU affinity 把一个或多个进程绑定到一个或多个CPU上。CPU Affinity分为2种,soft affinity和hard affinity。soft

2017-08-01 10:19:08 1319 1

转载 系统性能调优

转载自:http://coolshell.cn/articles/7490.html关于性能优化这是一个比较大的话题,在《由12306.cn谈谈网站性能技术》中我从业务和设计上说过一些可用的技术以及那些技术的优缺点,今天,想从一些技术细节上谈谈性能优化,主要是一些代码级别的技术和方法。本文的东西是我的一些经验和知识,并不一定全对,希望大家指正和补充。在开始这篇文章之前,大家

2017-08-01 10:11:56 418

转载 Redis 并发, 锁, 竞争锁问题

Redis并发问题Redis为单进程单线程模式,采用队列模式将并发访问变为串行访问。Redis本身没有锁的概念,Redis对于多个客户端连接并不存在竞争,但是在Jedis客户端对Redis进行并发访问时会发生连接超时、数据转换错误、阻塞、客户端关闭连接等问题,这些问题均是由于客户端连接混乱造成。对此有2种解决方法:1.客户端角度,为保证每个客户端间正常有序与Redis进行通信,对连

2017-07-31 10:42:54 901

转载 再谈互斥锁与条件变量

pthread_cond_wait总和一个互斥锁结合使用。在调用pthread_cond_wait前要先获取锁。pthread_cond_wait函数执行时先自动释放指定的锁,然后等待条件变量的变化。在函数调用返回之前,自动将指定的互斥量重新锁住。int pthread_cond_signal(pthread_cond_t * cond);pthread_cond_signal通过

2017-07-24 08:49:12 240

转载 在curl中设置自定义的HTTP头

问题:我正尝试使用curl命令获取一个URL,但除此之外我还想在传出的HTTP请求中设置一些自定义的头部字段。我如何能够在curl中使用自定义的HTTP头呢?curl是一个强大的命令行工具,它可以通过网络将信息传递给服务器或者从服务器获取数据。他支持很多的传输协议,尤其是HTTP/HTTPS以及其他诸如FTP/FTPS, RTSP, POP3/POP3S, SCP, IMAP/IMAPS协

2017-07-21 08:10:39 23555

转载 算法的时间复杂度和空间复杂度

算法的时间复杂度和空间复杂度-总结        通常,对于一个给定的算法,我们要做 两项分析。第一是从数学上证明算法的正确性,这一步主要用到形式化证明的方法及相关推理模式,如循环不变式、数学归纳法等。而在证明算法是正确的基础上,第二部就是分析算法的时间复杂度。算法的时间复杂度反映了程序执行时间随输入规模增长而增长的量级,在很大程度上能很好反映出算法的优劣与否。因此,作为程序员,掌握基本的

2017-07-20 21:18:17 349

转载 C/C++中全局变量,静态局部变量,局部变量的初始化问题

转载: http://www.cnblogs.com/catch/p/4314256.html什么时候初始化根据 C++ 标准,全局变量的初始化要在 main 函数执行前完成,常识无疑,但是这个说法有点含糊,main 函数执行前到底具体是什么时候呢?是编译时还是运行时?答案是既有编译时,也可能会有运行时(seriously), 从语言的层面来说,全局变量的初始化可以划分为以下两

2017-07-20 11:36:48 12002

转载 局部静态变量是如何做到只初始化一次的?

局部静态变量是如何做到只初始化一次的?关于编译选项 -Wa,-adlhn参考http://blog.csdn.net/lanxinju/article/details/5900986  以下内容来自于内网别的高人的回复可以写个程序测试一下: 12345678910

2017-07-20 11:31:00 2310

转载 多队列网卡简介

多队列网卡是一种技术,最初是用来解决网络IO QoS (quality of service)问题的,后来随着网络IO的带宽的不断提升,单核CPU不能完全处满足网卡的需求,通过多队列网卡驱动的支持,将各个队列通过中断绑定到不同的核上,以满足网卡的需求。常见的有Intel的82575、82576,Boardcom的57711等,下面以公司的服务器使用较多的Intel 82575网卡为例,分析

2017-07-19 21:45:37 674 1

转载 Linux Page Cache的工作原理

1 、前言  自从诞生以来,Linux 就被不断完善和普及,目前它已经成为主流通用操作系统之一,使用得非常广泛,它与Windows 、UNIX 一起占据了操作系统领域几乎所有的市场份额。特别是在高性能计算领域,Linux 已经成为一个占主导地位的操作系统,在2005年6月全球TOP500 计算机中,有 301 台部署的是 Linux 操作系统。因此,研究和使用 Linux 已经成为开发

2017-07-14 14:42:38 6568

转载 多核编程 与 单核多线程编程的区别

转载:http://blog.csdn.net/doupei2006/article/details/8066022本文是阅读周伟民的《多核计算与程序设计》书摘1、锁竞争:单核中,如果单个线程取得所,则获取CPU运行时间,其他等待获取锁的线程被阻塞。使用了锁,影响的只是枷锁和解锁的耗时,CPU始终运行。多核中,若2个(更多)线程使用同一把

2017-07-13 15:32:02 849

转载 浅析SkipList跳跃表原理及代码实现

转载:http://blog.csdn.net/ict2014/article/details/17394259SkipList在leveldb以及lucence中都广为使用,是比较高效的数据结构。由于它的代码以及原理实现的简单性,更为人们所接受。我们首先看看SkipList的定义,为什么叫跳跃表?“ Skip lists are data structures that us

2017-07-11 16:17:24 359

转载 结构体中最后一个成员为[0]或[1]长度数组(柔性数组成员)的用法

转载:http://blog.csdn.net/fengbingchun/article/details/24185217结构体中最后一个成员为[0]长度数组的用法:这是个广泛使用的常见技巧,常用来构成缓冲区。比起指针,用空数组有这样的优势:(1)、不需要初始化,数组名直接就是所在的偏移;(2)、不占任何空间,指针需要占用int长度空间,空数组不占任何空间。“这个数组不占用任何内存”,意味

2017-07-11 14:26:05 605

转载 跳表SkipList

跳表SkipList1.聊一聊跳表作者的其人其事2. 言归正传,跳表简介3. 跳表数据存储模型4. 跳表的代码实现分析5. 论文,代码下载及参考资料 . 聊一聊作者的其人其事 跳表是由William Pugh发明。他在 Communications of the ACM June 1990, 33(6) 668-676 发表了Skip lis

2017-07-11 10:02:51 246

转载 SkipList 跳表

转载:http://kenby.iteye.com/blog/1187303为什么选择跳表目前经常使用的平衡数据结构有:B树,红黑树,AVL树,Splay Tree, Treep等。 想象一下,给你一张草稿纸,一只笔,一个编辑器,你能立即实现一颗红黑树,或者AVL树出来吗? 很难吧,这需要时间,要考虑很多细节,要参考一堆算法与数据结构之类的树,还要参

2017-07-10 09:56:45 245

转载 Skip List(跳跃表)原理详解与实现

Skip List(跳跃表)原理详解与实现 转载:http://dsqiu.iteye.com/blog/1705530本文内容框架:§1 Skip List 介绍§2 Skip List 定义以及构造步骤 §3 Skip List 完整实现§4 Skip List 概率分析§5 小结   

2017-07-10 09:52:55 318

转载 文件IO - O_DIRECT和O_SYNC

一,O_DIRECT,绕过缓冲区高速缓存,直接IO直接IO:Linux允许应用程序在执行磁盘IO时绕过缓冲区高速缓存,从用户空间直接将数据传递到文件或磁盘设备,称为直接IO(direct IO)或者裸IO(raw IO)。应用场景:数据库系统,其高速缓存和IO优化机制均自成一体,无需内核消耗CPU时间和内存去完成相同的任务。使用直接IO的弊端:可能会大大降低性能,内核对

2017-07-07 16:28:02 1242

转载 read/fread write/fwrite 的实现原理

fread就是通过read来实现的,fread是C语言的库,而read是系统调用。差别在read每次读的数据是调用者要求的大小,比如调用者要求读取10个字节数据,read就会从内核缓冲区(操作系统开辟的一段空间用来存储磁盘上的数据)读10个字节数据到数组中,所以每次调用read会涉及到用户态与內核态之间的切换从而损耗一定的性能。而fread不一样,为了加快读的速度,fread每次都会从内核缓冲

2017-07-07 14:24:41 3791

转载 mmap和direct io和write和fwrite区别

看完此文,题目不言自明。转自 http://blog.chinaunix.net/uid-27105712-id-3270102.html在Linux 开发中,有几个关系到性能的东西,技术人员非常关注:进程,CPU,MEM,网络IO,磁盘IO。本篇文件打算详细全面,深入浅出。剖析文件IO的细节。从多个角度探索如何提高IO性能。本文尽量用通俗易懂的视角去阐述。不copy内核代码。

2017-07-07 14:07:05 1603 2

编译原理第6章-语义分析

编译原理第6章-语义分析

2016-11-22

poll和epoll内核源码剖析

poll和epoll内核源码剖析

2016-11-21

c语言开发实例详解

用大量经典有趣的问题来讲解C的开发,强烈推荐

2015-03-28

TCP-IP详解卷2

TCP-IP详解卷2是TCP/IP技术详解卷2

2011-09-25

TCP-IP详解卷1

TCP-IP详解卷1是TCP/IP协议详解卷1.

2011-09-25

计算机网络与因特网

计算机网络与因特网一书是计算机网络技术里的圣经

2011-09-25

Berkeley DB 资料

Berkeley DB 批量插入更新与删除用法示例 Berkeley 函数接口 Berkeley DB 由浅入深 SQL 开发人员 Oracle Berkeley DB 指南 Berkeley DB参考手册

2010-09-21

c 函数速查手册 c的标准库函数

本帮助文件由本人整理制作,内容全摘自网络,版权归实际作者所有.

2009-10-13

linux c函数速查手册

linux编程的标您可以免费的使用、分发本手册。但未经Linhan的授权许可不得擅自进行篡改、反编译,及将其全部或部分用于商业用途。 本手册受著作权法和国际公约的保护,作者保留对本手册及本声明的最终修改权。 准库函数 都可以搜到

2009-10-13

lcd ampire128x64 的使用 proteus

本资源为lcd ampire128x64 的使用,包括它的仿真,软件为proteus6 所用程序是用 keil编写,也有源码。

2009-05-17

自动控制 -20-sim

自动控制 荷兰软件20-sim的使用及课题设计,该课题设计是利用了仿真软件的控制应用试验箱

2009-04-28

autocad做的小户型平面图

小户型平面图即是平面图的设计,本作品是用AutoCAD的平面设计模块制作的平面图图1是整个小户型平面图制作的成品图,人们可以看到这个作品的整个平面设计和室内部的布局。

2009-03-14

用matlab做的小波信号变换系统

用matlab作的小波信号变换系统,利用二维小波变换实现图像压缩、图像融合和图像增强等功能。

2009-03-14

空空如也

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

TA关注的人

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