转载:Hadoop权威指南学习笔记
摘要:转自:http://pieux.github.io/blog/2013-05-08-learn-hadoop-the-definitive-guide.html 1 前言Hadoop的内部工作机制: 分布式系统理论, 实际工程和常识于一体的系统.但是,Hadoop提供的用于构建分布式系统的工具–数据存储, 数据分析,和协调处理–都非常简单.本书的结构: 1章介绍历史, 2章介绍MapReduce,3章剖析Hadoop文件系统, 特别是HDFS,4章包含Hadoop的基本I/O操作:数据完整性,压缩,序列化及基于文件的数据结构.接下来的5~8章深入剖析MapReduce.之后的省略说明.本书的阅
阅读全文
posted @
2013-07-31 16:05
猿人谷
阅读(8318)
推荐(0) 编辑
编写一个循环将list容器的元素逆序输出
摘要:《c++ primer》P270,习题9.9实现代码如下:#include#includeusing namespace std;int main(){ int ia[5]={1 , 2 , 3 , 4 , 5}; list lst1(ia , ia + 5); list::iterator iter1 = lst1.begin(), iter2 = lst1.end(); while(iter2 != iter1) cout<<*(--iter2)<<" " ; cout<<endl; return 0;}
阅读全文
posted @
2013-07-31 15:57
猿人谷
阅读(1675)
推荐(0) 编辑
《C++ primer》--第9章
摘要:习题9.2 创建和初始化一个vector对象有4种方式,为每种方式提供一个例子。解答:分配指定数目的元素,并对这些元素进行值初始化:vector ivec(10); // ivec包含10个0值元素 2. 分配指定数目的元素,并将这些元素初始化为指定值:vector ivec(10 , 1); // ivec包含10个值为1的元素 3. 将vector对戏那个初始化为一段元素的副本:int ia[10] = {0 , 1 ,2 ,3 ,4,5,6,7,8,9};vector ivec(ia , ia+10); //ivec包含10个元素,值分别为0~9 4. 将一个vector对象初始化为另一
阅读全文
posted @
2013-07-31 14:30
猿人谷
阅读(614)
推荐(0) 编辑
《C++ primer》--第7章
摘要:删除指针后,该指针就变成了悬垂指针。悬垂指针指向曾经存放对象的内存,但该对象已经不再存在了。习题7.8 举一个例子说明什么时候应该将形参定义为引用类型。再举一个例子说明什么时候不应该将形参定义为引用。解答:如果希望通过函数调用修改实参的值,就应该将形参定义为引用类型。例如,用swap函数交换两数的值。如果不将形参定义为指针类型,则需要直接修改实参的值,应该将形参定义为引用类型:void swap(int &v1 , int &v2){ int temp = v2; v2 = v1; v1 = temp; }除了swap函数这种情况外,为了通过一次函数调用获得多个结果值,也可以使
阅读全文
posted @
2013-07-27 21:03
猿人谷
阅读(358)
推荐(0) 编辑
指针和引用的比较(P105)
摘要:指针和引用的比较?虽然使用引用和指针都可间接访问另一个值,但它们之间有两个重要区别。第一个区别在于引用总是指向某个对象:定义引用时没有初始化是错误的。第二个重要区别则是赋值行为的差异:给引用赋值修改的是该引用所关联的对象的值,而并不是使引用与另一个对象关联。引用一经初始化,就始终指向同一个特定对象(这就是为什么引用必须在定义时初始化的原因)。给指针赋值修改的是指针对象本身,也就是使该指针指向另一对象,指针在不同时刻可指向不同的对象(只要保证类型匹配)。
阅读全文
posted @
2013-07-25 15:46
猿人谷
阅读(266)
推荐(0) 编辑
转载:看c++ primer 学习心得
摘要:学习C++ Primer时遇到的问题及解释chenm91感觉:l 啰嗦有时会掩盖主题:这本书确实有些啰嗦,比如在讲函数重载的时候,讲了太长一大段(有两节是打了*号的,看还是不看?),而在TC++PL中则精炼很多。这让人有些很难接受,很多时候好像让人有些找不到纲了。l 举例偏难有时也会掩盖主题:这本书使用的例子“文本查询系统”有些偏难。在讲述C++的一些关键性概念的时候,应该将读者的注意力都集中在这些概念上,可 是通过这样一个难懂的例子来讲述,我觉得无疑是将问题复杂化了,尤其是在讲述面向对象和STL相关概念时,我无法接受,尽管确实通过这个例子显示了C++ 的NB之处。而在TC++PL中,不管讲什
阅读全文
posted @
2013-07-25 10:34
猿人谷
阅读(780)
推荐(1) 编辑
《C++ primer》--第三章
摘要:习题3.2 什么是默认构造函数?解答: 默认构造函数就是在没有显示提供初始化式时调用的构造函数。它由不带参数的构造函数,或者为所有形参提供默认实参的构造函数定义。如果定义某个类的变量时没有提供初始化式,就会使用默认构造函数。 如果用户定义的类中没有显示定义任何构造函数,编译器就会自动为该类生成默认构造函数,称为合成的默认构造函数。习题3.3 列举出三种初始化string对象的方法。解答:不带初始化式,使用默认构造函数初始化string对象。使用给一个已存在的string对象作为初始化式,将新创建的string对象初始化为已存在对象的副本。使用字符串字面值作为初始化式,将新创建的string对象
阅读全文
posted @
2013-07-24 09:43
猿人谷
阅读(304)
推荐(0) 编辑
转载: 摩托罗拉部分面试题
摘要:1.What is achieved by prefixing the 'static' keyword to a file-level function or file-level variable declaration?2.Describe the difference between the “IS A” and “HAS A” object relationships. Which is the stronger relationship and why?3.Java & C# support interfaces directly with the “int
阅读全文
posted @
2013-07-23 21:01
猿人谷
阅读(271)
推荐(0) 编辑
转载:常见的排序算法及实现
摘要:目录(?)[-]一排序的概念一排序sort或分类二排序方法的分类三排序算法分析二插入排序一直接插入排序基本思想二一趟直接插入排序方法三直接插入排序算法四算法分析三希尔排序一希尔排序基本思想二Shell排序的算法实现三算法分析四交换排序一冒泡排序二快速排序QuickSort五直接选择排序Straight Selection Sort直接选择排序的基本思想堆排序六两路归并算法七箱排序Bin Sort八桶排序九各种排序方法比较转自:http://blog.csdn.net/w397090770/article/details/8074821一、排序的概念一、排序(sort)或分类所谓排序,就是要整理
阅读全文
posted @
2013-07-22 21:01
猿人谷
阅读(1380)
推荐(0) 编辑
找出一个数组中出现次数最大的数
摘要:描叙:一大堆数据里面,数字与数字之间用空格隔开,找出出现次数最多的一个数字的算法#includevoid FindMostTimesDigit(int *Src , int SrcLen){ int element , has = SrcLen; int MaxNum , TempCount = 0 , MaxCount = 0; int i , j , *result = new int[]; while(0 != has) { TempCount = 0; element = Src[has - 1]; for(j = has - 1 ; j >= 0 ; --j) { ...
阅读全文
posted @
2013-07-19 20:54
猿人谷
阅读(6025)
推荐(0) 编辑
转载:C++ 虚函数表解析
摘要:目录(?)[+]转载:http://blog.csdn.net/haoel/article/details/1948051#前言C++中 的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术 可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。关于虚函数的使用方法,我在这里不做过多的阐述。大家可以看看相关的C++的书籍。在这篇文章中,我只想从虚函数的实现
阅读全文
posted @
2013-07-19 10:19
猿人谷
阅读(480)
推荐(0) 编辑
转载:大端和小端
摘要:大端和小端 嵌入式开发者应该对大端和小端很熟悉。在内存单元中数据是以字节为存储单位的,对于多字节数据,在小端模式中,低字节数据存放在低地址单元,而在大端模式 中,低字节数据存放在高地址单元。比如一个定义一个short型的变量a,赋值为1,由于short型数据占2字节。在小端模式中,其存放方式为0X4000 000000010X4001 00000000而在大端模式中,其存放方式为0X4000 000000000X4001 00000001若需用程序验证系统是大端模式还是小端模式(一般我们用的x86结构的都是小端模式),有两种方法1.利用联合体的性质 因为联合体中的成员是共享内存的,并且数据是从
阅读全文
posted @
2013-07-18 20:27
猿人谷
阅读(263)
推荐(0) 编辑
浅淡C/C++中的typedef和#define
摘要:在C/C++中,我们平时写程序可能经常会用到typedef关键字和#define宏 定义命令,在某些情况下使用它们会达到相同的效果,但是它们是有实质性的区别,一个是C/C++的关键字,一个是C/C++的宏定义命令,typedef 用来为一个已有的数据类型起一个别名,而#define是用来定义一个宏定义常量。下面谈谈两者在实际使用中应当注意的地方。1.typedef关键字 typedef是用来声明类型别名的,在实际编写代码过程使用typedef往往是为了增加代码的可读性。它可以为一串很长的类型名起一个别名,那么使用这个别名可以达到与原类型名相同的效果。 如:typedef int INT;typ
阅读全文
posted @
2013-07-18 20:24
猿人谷
阅读(5581)
推荐(0) 编辑
浅淡数组和指针
摘要:谢谢大牛的分享,看完后让我对数组与指针有了更深刻的理解,在此谢过!转载:http://www.cnblogs.com/dolphin0520/archive/2011/11/09/2242138.html http://www.cnblogs.com/dolphin0520/archive/2011...
阅读全文
posted @
2013-07-18 19:46
猿人谷
阅读(797)
推荐(0) 编辑
static用法详解
摘要:一. 面向过程程序设计1、静态全局变量 在全局变量前,加上关键字static,该变量就被定义成为一个静态全局变量。我们先举一个静态全局变量的例子,如下: [cpp] view plaincopy//Example1 #include voidfn(); staticintn;//定义静态全局变量 voidmain() {n=20; cout voidfn(); staticintn;//定义静态全局变量 voidmain() {n=20; cout externintn; voidfn() {n++; cout voidfn(); voidmain() ...
阅读全文
posted @
2013-07-18 16:07
猿人谷
阅读(22867)
推荐(0) 编辑
求大于整数m且紧靠m的k个素数 及 判断一个数是否为素数的方法
摘要:题目: 请编写一个函数void fun(int m,int k ,int xx[]),该函数的功能是:将大于整数m且紧靠m的k个素数存入xx所指的数组中。 例如,若输入:17,5,则应输出:19,23,29,31,37。质数又称素数。指在一个大于1的自然数中,除了1和此整数自身外,不能被其他自然数整除的数。 1 #include 2 #include 3 4 bool isPrime(int n) 5 { 6 for(int i = 2 ; i 2 #include 3 using namespace std; 4 5 bool isPrime(int n) 6 { 7 ...
阅读全文
posted @
2013-07-18 15:37
猿人谷
阅读(3769)
推荐(0) 编辑
结构体、共用体
摘要:1 #include 2 union 3 { 4 int i; 5 char x[2]; 6 }a; 7 8 void main() 9 { 10 a.x[0] = 10; 11 a.x[1] = 1; 12 printf("%d",a.i); 13 } 14 答案:266 15 16 x86的机器,小端字节序, 17 x[0]=0x0a x[1] = 0x01 18 19 则i就是0x0000010a 20 21 结果就是266. 共用体和结构体的区别在于:结构体的每个域都有它自己的存储空间;共用体所有域共用一个存储空间。...
阅读全文
posted @
2013-07-18 10:45
猿人谷
阅读(787)
推荐(0) 编辑
strlen函数,strcat函数,strcpy函数,strncpy函数,strcmp函数
摘要:strcpy函数:[cpp] view plaincopychar*strcpy(char*Dest,constchar*Src){assert((Dest!=NULL)&&(Src!=NULL));char*address=Dest;while((*Dest++=*Src++)!='\0')NULL;returnaddress;}strncpy函数:利用标准库函数strncpy(),可以将一字符串的一部分拷贝到另一个字符串中。strncpy()函数有3个参数:第一个参数是目录字符串;第二个参数是源字符串;第三个参数是一个整数,代表要从源字符串拷贝到目标字符串中
阅读全文
posted @
2013-07-17 21:40
猿人谷
阅读(11422)
推荐(0) 编辑
memmove函数
摘要:写一个函数,完成内存之间的拷贝[cpp] view plaincopyvoid*mymemcpy(void*dest,constvoid*src,size_tcount){char*pdest=static_cast(dest);constchar*psrc=static_cast(src);if(pdest>psrc&&pdest 功能:由src所指内存区域复制count个字节到dest所指内存区域。 说明:src和dest所指内存区域可以重叠,但复制后src内容会被更改。函数返回指向dest的指针。 memmove和memcpy的区别:1.memmove函数原型:vo
阅读全文
posted @
2013-07-17 20:53
猿人谷
阅读(12428)
推荐(0) 编辑
strcpy函数和strncpy函数的区别
摘要:strcpy函数和strncpy函数的原型介绍在我的另一篇文章中介绍了,见strcpy,strncpy,strlen等函数原型strcpy:字串复制 原型:char *strcpy(char *dest, char *src); 功能:把src所指由'\0'结束的字符串复制到dest所指的数组中。 说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。 返回指向dest的指针。 注意:当src串长度>dest串长度时,程序仍会将整个src串复制到dest区域,可是dest数组已发生溢出。 因此会导致dest栈空间溢出以致产生崩溃异常。
阅读全文
posted @
2013-07-17 20:50
猿人谷
阅读(3295)
推荐(1) 编辑
技术怪题
摘要:有些公司的题真的是会让咱们大跌眼镜。不信,看下面一道题。int main(){if( ) { printf("Hello ");}else{printf("World !!!");}return 0;}在if里面请写入语句 使得打印出 hello world。解答:[cpp] view plaincopy#includeintmain(){if(!printf("hello"))//加入!printf("hello"){printf("Hello");}else{printf("Wor
阅读全文
posted @
2013-07-17 20:40
猿人谷
阅读(464)
推荐(0) 编辑
求子数组的最大和
摘要:分析:输入一个整形数组,数组里有正数也有负数,数组中一个或连续的多个正数,求所有子数组的和的最大值。当我们加上一个正数时,和会增加;当我们加上一个负数时,和会减少。如果当前得到的和是个负数,那么这个和在接下来的累加中应该抛弃并重新清零,不然的话这个负数将会减少接下来的和。因此需采用DP思想,记录下当前元素之和(为其最优状态,既最大),将其与目前所得的最大和比较,若大于则更新,否则继续。状态的累加遵循这个过程:如果当前和小于0,则放弃该状态,将其归零。扩展:数对之差的最大值。 1 //求子数组的最大和 2 //利用的是dp的思想,依次遍历数组中的每个元素,把他们相加,如果加起来小于0,则 3 /
阅读全文
posted @
2013-07-17 19:59
猿人谷
阅读(958)
推荐(0) 编辑
负载均衡算法
摘要:转自:http://xiao1227372602.iteye.com/blog/1898340几种负载均衡算法 本地流量管理技术主要有以下几种负载均衡算法:静态负载均衡算法包括:轮询,比率,优先权动态负载均衡算法包括: 最少连接数,最快响应速度,观察方法,预测法,动态性能分配,动态服务器补充,服务质量,服务类型,规则模式。静态负载均衡算法◆轮询(Round Robin):顺序循环将请求一次顺序循环地连接每个服务器。当其中某个服务器发生第二到第7 层的故障,BIG-IP 就把其从顺序循环队列中拿出,不参加下一次的轮询,直到其恢复正常。◆比率(Ratio):给每个服务器分配一个加权值为比例,根椐这
阅读全文
posted @
2013-07-15 19:46
猿人谷
阅读(664)
推荐(0) 编辑
LAMP网站架构分析
摘要:转自:http://www.williamlong.info/archives/1908.htmlLAMP(Linux-Apache-MySQL-PHP)网站架构是目前国际流行的Web框架,该框架包括:Linux操作系统,Apache网 络服务器,MySQL数据库,Perl、PHP或者Python编程语言,所有组成产品均是开源软件,是国际上成熟的架构框架,很多流行的商业应用都是采 取这个架构,和Java/J2EE架构相比,LAMP具有Web资源丰富、轻量、快速开发等特点,微软的.NET架构相比,LAMP具有通用、跨平台、高 性能、低价格的优势,因此LAMP无论是性能、质量还是价格都是企业搭建网
阅读全文
posted @
2013-07-15 08:30
猿人谷
阅读(484)
推荐(0) 编辑
Visual Studio 2010中创建ASP.Net Web Service
摘要:转自:http://blog.csdn.net/xinyaping/article/details/7331375很多人在论坛里说,在Visual Studio 2010中不能创建“ASP.Net Web Service”这种project了,下面跟帖者云云,有的说这是因为微软已经将Web Service整合进WCF,也有的提出一种先将.Net Framework Target设置为3.5的一种很“Tricky”的作法,其实这些说法是不准确的。微软确实用WCF整合了Web Service,但并不等于说微软不准备让大家在Visual Studio里面创建传统的Web Service了。其实正确的
阅读全文
posted @
2013-07-13 15:29
猿人谷
阅读(341)
推荐(0) 编辑
枚举类型
摘要:转自:http://blog.csdn.net/lbsjs/article/details/178896在程序设计中,有时会用到由若干个有限数据元素组成的集合,如一周内的星期一到星期日七个数据元素组成的集合,由三种颜色红、黄、绿组成的集合,一个工作 班组内十个职工组成的集合等等,程序中某个变量取值仅限于集合中的元素。此时,可将这些数据集合定义为枚举类型。因此,枚举类型是某类数据可能取值的集 合,如一周内星期可能取值的集合为: { Sun,Mon,Tue,Wed,Thu,Fri,Sat} 该集合可定义为描述星期的枚举类型,该枚举类型共有七个元素,因而用枚举类型定义的枚举变量只能取集合中的某一..
阅读全文
posted @
2013-07-12 16:43
猿人谷
阅读(541)
推荐(0) 编辑
实现两个N*N矩阵的乘法,矩阵由一维数组表示
摘要:实现两个N*N矩阵的乘法,矩阵由一维数组表示。先介绍一下矩阵的加法:1 void Add(int rows, int cols) 2 { 3 for(int i= 0;iusingnamespacestd;#definesize2intmulti(int*a,int*b,intN){inti,j,k,temp;int*c=(int*)malloc(N*N*sizeof(int));for(i=0;i<N;i++){for(j=0;j<N;j++){temp=i*N+j;*(c+temp)=0;for(k=0;k<N;k++){*(c+temp)+=a[i*N+...
阅读全文
posted @
2013-07-12 09:58
猿人谷
阅读(846)
推荐(0) 编辑
C++笔试题
摘要:转自:http://bbs.yingjiesheng.com/thread-37802-1-1.html1.已知strcpy 函数的原型是:char *strcpy(char *strDest, const char *strSrc);其中strDest 是目的字符串,strSrc 是源字符串。不调用C++/C 的字符串库函数,请编写函数 strcpy答案:char *strcpy(char *strDest, const char *strSrc){if ( strDest == NULL || strSrc == NULL)return NULL ;if ( strDest == strS
阅读全文
posted @
2013-07-11 11:04
猿人谷
阅读(537)
推荐(0) 编辑
笔试题
摘要:转自:http://bbs.yingjiesheng.com/thread-32387-1-1.html 1. 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL 我在这想看到几件事情:1). #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等)2). 懂得预处理器将为你计算常数表达式的值,因此,直接写出你是如何计算一年中有多少秒而不是计算出实际的值,是更清晰而没有代价的。3). 意识到这个表达式将使一个16位机的整型数溢出-因此要用到长整型符号L,告
阅读全文
posted @
2013-07-10 21:04
猿人谷
阅读(356)
推荐(0) 编辑
数组测试题
摘要:转自:http://bbs.yingjiesheng.com/thread-37806-1-1.html对数组,指针,数据结构,算法,字符串,文件操作等问题都有覆盖.主要以c语言的实现为主,也有c++的题.大家可以先做做这10道题,测试一下自己的水平.1. 下面这段代码的输出是多少(在32位机上). char *p; char *q[20]; char *m[20][20]; int (*n)[10]; struct MyStruct{ char dda; double dda1; int type ;}; MyStruct k;printf("%d %d %d %d",s
阅读全文
posted @
2013-07-10 15:57
猿人谷
阅读(537)
推荐(0) 编辑
C++类的静态成员详细讲解
摘要:在C++中,静态成员是属于整个类的而不是某个对象,静态成员变量只存储一份供所有对象共用。所以在所有对象中都可以共享它。使用静态成员变量实现多个对象之间的数据共享不会破坏隐藏的原则,保证了安全性还可以节省内存。静态成员的定义或声明要加个关键static。静态成员可以通过双冒号来使用即::。在C++中类的静态成员变量和静态成员函数是个容易出错的地方,本文先通过几个例子来总结静态成员变量和成员函数使用规则,再给出一个实例来加深印象。希望阅读本文可以使读者对类的静态成员变量和成员函数有更为深刻的认识。第一个例子,通过类名调用静态成员函数和非静态成员函数class Point{public: void
阅读全文
posted @
2013-07-10 13:44
猿人谷
阅读(316)
推荐(1) 编辑
程序员技术练级攻略
摘要:伯乐人才网6月9日发表了《写给即将入行的程序员的一封信》,翻译自《An open letter to those who want to start programming》,我的朋友(他在本站的id是Mailper)告诉我,他希望在酷壳上看到一篇更具操作性的文章。因为他也是喜欢编程和技术的家伙,于是,我让他把他的一些学习Python和Web编程的一些点滴总结一下。于是他给我发来了一些他的心得和经历,我在把他的心得做了不多的增改,并根据我的经历增加了“进阶”一节。这是一篇由新手和我这个老家伙根据我们的经历完成的文章。 我的这个朋友把这篇文章取名叫Build Your ProgrammingT.
阅读全文
posted @
2013-07-10 09:30
猿人谷
阅读(756)
推荐(2) 编辑
操作系统面试题(2)
摘要:1、线程与进程的区别联系2、进程通信方式有哪些?3、同步的方式有哪些?4、ThreadLocal与其它同步机制的比较5、进程死锁的条件第一题:(1)线程是进程的一个实体,一个进程可以拥有多个线程,多个线程也可以并发执行。一个没有线程的进程也可以看做是单线程的,同样线程也经常被看做是一种轻量级的进程。并且进程可以不依赖于线程而单独存在,而线程则不然。(2)进程是并发程序在一个数据集合上的一次执行过程,进程是系统进行资源分配和调度的独立单位,线程是进程的实体,它是比进程更小的能够独立执行的基本单元,线程自己不拥有任何系统资源,但是它可以访问其隶属进程的全部资源。(3)与进程的控制表PCB相似,线程
阅读全文
posted @
2013-07-04 21:51
猿人谷
阅读(1807)
推荐(0) 编辑
字符串倒序
摘要:以下代码是把一个字符串倒序,如“abcd”倒序后变为“dcba” 1 #include 2 #include 3 4 int main() 5 { 6 char str[]="abcde"; 7 int len = strlen(str); 8 char t; 9 for(int i = 0 ; i < len/2 ; i++)10 {11 t = str[i];12 str[i] = str[len-i-1];13 str[len-i-1] = t;14 }15 printf("%s\n...
阅读全文
posted @
2013-07-04 21:34
猿人谷
阅读(560)
推荐(0) 编辑
字符串反转问题
摘要:首先是我之前写的程序,同时这也是处理第一类的字符串反转问题,也就是输入This is a string.,输出为.gnirts a si sihT:#include #include /*我之前的这个代码,有一个很致命的BUG,在字符串长度为奇数的时候运行时正确的 *但是在字符串长度为偶数的时候运行却是错误的, *比如“ab”,str的地址为0x89,ptr的地址为0x8A,当str++,ptr--执行以后 *str和ptr都是不会相等的,也就是不会结束while循环!!!直到碰巧两者相等 *循环结束,但此时程序已经得不到原先想要的结果了!!! */void RevStr(char*str){
阅读全文
posted @
2013-07-04 20:49
猿人谷
阅读(883)
推荐(0) 编辑
linux系统性能分析
摘要:性能调优的第一步是性能分析,下面从性能分析着手进行一些介绍,尤其对Linux性能分析工具vmstat的用法和实践进行详细介绍。 1、性能分析的目的 1)找出系统性能瓶颈(包括硬件瓶颈和软件瓶颈); 2)提供性能优化的方案(升级硬件?改进系统系统结构?); 3)达到合理的硬件和软件配置; 4)使系统资源使用达到最大的平衡。(一般情况下系统良好运行的时候恰恰各项资源达到了一个平衡体,任何一项资源的过渡使用都会造成平衡体系破坏,从而 造成系统负载极高或者响应迟缓。比如CPU过渡使用会造成大量进程等待CPU资源,系统响应变慢,等待会造成进程数增加,进程增加又会造成内存使用增加, 内存耗尽又...
阅读全文
posted @
2013-07-04 20:18
猿人谷
阅读(806)
推荐(1) 编辑
操作系统基础知识
摘要:转自:http://www.blogjava.net/qileilove/archive/2012/08/22/386010.html1、什么是进程(Process)和线程(Thread)?有何区别?进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位。线程是进程的一个实体,是CPU调度和 分派的基本单位,它是比进程更小的能独立运行的基本单位。线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和 栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源。一个线程可以创建和撤销另一个线程,同一个进程
阅读全文
posted @
2013-07-04 20:15
猿人谷
阅读(1189)
推荐(0) 编辑
两个数组a[N],b[N],其中A[N]的各个元素值已知,现给b[i]赋值,b[i] = a[0]*a[1]*a[2]…*a[N-1]/a[i];
摘要:转自:http://blog.csdn.net/shandianling/article/details/8785269问题描述:两个数组a[N],b[N],其中A[N]的各个元素值已知,现给b[i]赋值,b[i] = a[0]*a[1]*a[2]…*a[N-1]/a[i];要求:1.不准用除法运算2.除了循环计数值,a[N],b[N]外,不准再用其他任何变量(包括局部变量,全局变量等)3.满足时间复杂度O(n),空间复杂度O(1) 1 #include 2 #include 3 4 void pr_arr(int s[],int len) 5 { 6 for...
阅读全文
posted @
2013-07-04 14:48
猿人谷
阅读(594)
推荐(0) 编辑
用加法模拟乘法
摘要:/* 用加法模拟乘法 */ #include #include //#define T(O,R,N,i) (N&(1<<i)) && (O+=(R<<i)) #define T(o,a,b,i) (b&1<<i) && (o+=a<<i) int simulateMutiply(int a,int b) { int out=0; T(out, a, b, 0); T(out, a, b, 1); T(out, a...
阅读全文
posted @
2013-07-04 14:46
猿人谷
阅读(571)
推荐(0) 编辑
网络后台开发面试题
摘要:1.C++模板的作用。将算法与具体对象分离,与类型无关,通用,节省精力 2.socket编程,如果client断电了,服务器如何快速知道???有以下几个技术:使用定时器(适合有数据流动的情况); 使用socket选项SO_KEEPALIVE(适合没有数据流动的情况);3.fork()一子进程程后 父进程癿全局变量能不能使用???fork后子进程将会拥有父进程的几乎一切资源,父子进程的都各自有自己的全局变量。不能通用,不同于线程。对于线程,各个线程共享全局变量。4.4G的long型整数中找到一个最大的,如何做????我的想法是要找到最大的肯定要遍历所有的数的,而且不能将数据全部读入内存,可能不足
阅读全文
posted @
2013-07-04 14:43
猿人谷
阅读(4876)
推荐(0) 编辑
查看系统信息
摘要:查看cpu信息# cat /proc/cpuinfo说明: 1.process会从0开始计数,一直持续到结束。可以清楚的看到机器的cpu数目。 2.查看物理cpu关注physical id的值,该值相同的话则表示为同一颗CPU。 3.查看flag标志,如果有ht标志,则说明支持超线程技术。【详情见本文末尾】常用的组合命令 1.查看cpu个数及型号# cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c 2.查看物理cpu个数# cat /proc/cpuinfo | grep physical | uniq –c查看内存消息# cat /p
阅读全文
posted @
2013-07-04 14:42
猿人谷
阅读(266)
推荐(0) 编辑
数组乘积--满足result[i] = input数组中除了input[i]之外所有数的乘积(假设不会溢出
摘要:数组乘积(15分)输入:一个长度为n的整数数组input输出:一个长度为n的整数数组result,满足result[i] = input数组中除了input[i]之外所有数的乘积(假设不会溢出)。比如输入:input = {2,3,4,5},输出result = {60,40,30,24}程序时间和空间复杂度越小越好。 1 /* 2 * 一个长度为n的整数数组result,满足result[i]=除input[i]之外所有数的乘积(不溢出),比如 3 * 输入input={2,3,4,5};输出 result={60,40,30,24}; 4 */ 5 /* 6 * 方法一...
阅读全文
posted @
2013-07-04 14:34
猿人谷
阅读(1241)
推荐(0) 编辑
(转载) 数组a[]={3,5,2,4,1,8},要求从a中找出所有“和”等于10的子集
摘要:背包问题。 不过就这道题目本身而言,由于集合a中只要6个元素,而不是成千上万,所以可以使用更直观的办法: 只要你能通过程序给出数组a中元素所组成的集合的所有的子集合(幂集),那么只需在这些集合中搜索等于10的就可以了。 而6个元素构成的集合的幂集可以通过6位二进制数来表示,对于从0到2的6次方减1(63)之间的所有的数,让其每一位比特位代表一个元素,当该位为0时表示该数所表示的子集中没有这个元素,否则表示拥有这个元素,这样就能对应出所有的组合,然后在这些所有的组合中检测和是否为10就可以了。 1 #include 2 3 #define ARRAY_SIZ...
阅读全文
posted @
2013-07-04 09:32
猿人谷
阅读(511)
推荐(0) 编辑
linux文件权限
摘要:一、文件和目录权限概述在linux中的每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何访问这些文件和目录。通过设定权限可以从以下三种访问方式限制访问权限:只允许用户自己访问;允许一个预先指定的用户组中的用户访问;允许系统中的任何用户访问。同时,用户能够控制一个给定的文件或目录的访问程度。一个文件活目录可能有读、写及执行权限。当创建一个文件时,系统会自动地赋予文件所有者读和写的权限,这样可以允许所有者能够显示文件内容和修改文件。文件所有者可以将这些权限改变为任何他想指定的权限。一个文件也许只有读权限,禁止任何修改。文件也可能只有执行权限,允许它想一个程序一样执行。三种不同的用户
阅读全文
posted @
2013-07-03 21:52
猿人谷
阅读(434)
推荐(0) 编辑