- 博客(27)
- 资源 (6)
- 收藏
- 关注
转载 Makefile详细介绍
陈皓 概述 —— 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件编译,你就不能不自己写makefi
2013-01-08 13:26:11
573
转载 Linux:Ldd命令介绍及使用方法
1、首先ldd不是一个可执行程序,而只是一个shell脚本 2、ldd能够显示可执行模块的dependency,其原理是通过设置一系列的环境变量,如下:LD_TRACE_LOADED_OBJECTS、LD_WARN、LD_BIND_NOW、LD_LIBRARY_VERSION、LD_VERBOSE等。当LD_TRACE_LOADED_OBJECTS环境变量不为空时,任何可执行程序在运行时,它
2013-01-08 13:24:23
683
转载 Linux下的动态库
linux下文件的类型是不依赖于其后缀名的,但一般来讲: .o,是目标文件,相当于windows中的.obj文件 .so 为共享库,是shared object,用于动态连接的,和dll差不多 .a为静态库,是好多个.o合在一起,用于静态连接 .la为libtool自动生成的一些共享库,vi编辑查看,主要记录了一些配置信息。可以用如下命令查看*.la文件的格式 $file *.
2013-01-08 13:23:46
618
转载 微博的短url如何实现
短网址应用已经在全国各大微博上开始流行了起来。例如QQ微博的url.cn,新郎的sinaurl.cn等。我们在QQ微博上发布网址的时候,微博会自动判别网址,并将其转换,例如:http://url.cn/2hytQx为什么要这样做的,原因我想有这样几点:1、微博限制字数为140字一条,那么如果我们需要发一些连接上去,但是这个连接非常的长,以至于将近要占用我们内容的一半篇幅,这
2012-11-29 09:58:44
1108
转载 Little定律
大多数粗略估算都基于显而易见的法则:总开销等于每个单元的开销乘以单元的个数。但是,有时我们需要更为深入的洞察。Bruce Weide描述了一个令人惊奇的通用法则。Denning和Buzen介绍的”运筹分析”(参见 Computing Surveys第10卷第3期,1978年11月,第225页~第261页)远比计算机系统中的排队网络模型具有普遍意义。他们的研究很出色,但是由于文 章主题的限制
2012-11-23 11:18:17
1366
转载 Google MapReduce
摘要MapReduce是一个编程模型,也是一个处理和生成超大数据集的算法模型的相关实现。用户首先创建一个Map函数处理一个基于key/value pair的数据集合,输出中间的基于key/value pair的数据集合;然后再创建一个Reduce函数用来合并所有的具有相同中间key值的中间value值。现实世界中有很多满足上述处理模型的例子,本论文将详细描述这个模型。MapReduce
2012-11-21 22:51:12
678
转载 The Google File System
摘要我们设计并实现了Google GFS文件系统,一个面向大规模数据密集型应用的、可伸缩的分布式文件系统。GFS虽然运行在廉价的普遍硬件设备上,但是它依然了提供灾难冗余的能力,为大量客户机提供了高性能的服务。虽然GFS的设计目标与许多传统的分布式文件系统有很多相同之处,但是,我们的设计还是以我们对自己的应用的负载情况和技术环境的分析为基础的,不管现在还是将来,GFS和早期的分布式文件系
2012-11-21 22:49:49
564
转载 Bigtable:一个分布式的结构化数据存储系统
摘要Bigtable是一个分布式的结构化数据存储系统,它被设计用来处理海量数据:通常是分布在数千台普通服务器上的PB级的数据。Google的很多项目使用Bigtable存储数据,包括Web索引、Google Earth、Google Finance。这些应用对Bigtable提出的要求差异非常大,无论是在数据量上(从URL到网页到卫星图像)还是在响应速度上(从后端的批量处理到实时数据服务)。尽
2012-11-21 22:48:12
1225
转载 linux top命令详解
top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。下面详细介绍它的使用方法。top - 01:06:48 up 1:22, 1 user, load average: 0.06, 0.60, 0.48 Tasks: 29 total, 1 running, 28 slee
2012-10-26 15:17:30
464
转载 strace——linux下系统调用跟踪诊断工具
引言“Oops,系统挂死了..."“Oops,程序崩溃了..."“Oops,命令执行报错..."对于维护人员来说,这样的悲剧每天都在上演。理想情况下,系统或应用程序的错误日志提供了足够全面的信息,通过查看相关日志,维护人员就能很快地定位出问题发生的原因。但现实情况,许多错误日志打印模凌两可,更多地描述了出错时的现象(比如"could not open file","connect
2012-10-26 14:58:10
992
转载 【转】Why Memory Barrier?
要了解如何使用memory barrier,最好的方法是明白它为什么存在。CPU硬件设计为了提高指令的执行速度,增设了两个缓冲区(store buffer, invalidate queue)。这个两个缓冲区可以避免CPU在某些情况下进行不必要的等待,从而提高速度,但是这两个缓冲区的存在也同时带来了新的问题。要仔细分析这个问题需要先了解cache的工作方式。目前CPU的cache的
2012-10-22 11:04:20
600
转载 【转】跳表SkipList详解
跳表SkipList1.聊一聊跳表作者的其人其事2. 言归正传,跳表简介3. 跳表数据存储模型4. 跳表的代码实现分析5. 论文,代码下载及参考资料 . 聊一聊作者的其人其事 跳表是由William Pugh发明。他在 Communications of the ACM June 1990, 33(6) 668-676 发表了Skip lists
2012-10-19 18:12:40
739
转载 【转】LevelDb介绍
LevelDb日知录之一:初识LevelDb 说起LevelDb也许您不清楚,但是如果作为IT工程师,不知道下面两位大神级别的工程师,那您的领导估计会Hold不住了:Jeff Dean和Sanjay Ghemawat。这两位是Google公司重量级的工程师,为数甚少的Google Fellow之二。Jeff Dean其人:http://re
2012-10-19 14:23:28
797
转载 【转】一道Google面试题的解法
这几天有一道Google的面试题在论坛炒得很火,题目如下:“有一个100层高的大厦,你手中有两个相同的玻璃围棋子。从这个大厦的某一层扔下围棋子就会碎,用你手中的这两个玻璃围棋子,找出一个最优的策略,来得知那个临界层面。”下面给出我的分析和解答。为了得到两个棋子的最优策略,我们先简化问题,看看一个棋子的情况。如果手中只有一个棋子,为了得知临界层面,你只有一种选择:从2楼开始,一层一层地试,直
2012-10-16 22:30:50
521
转载 【转】Bloom Filter概念和原理
Bloom Filter概念和原理焦萌 2007年1月27日Bloom Filter是一种空间效率很高的随机数据结构,它利用位数组很简洁地表示一个集合,并能判断一个元素是否属于这个集合。Bloom Filter的这种高效是有一定代价的:在判断一个元素是否属于某个集合时,有可能会把不属于这个集合的元素误认为属于这个集合(false positive)。因此,Bloom Filter不
2012-10-16 22:22:25
477
转载 【转】海量数据处理方法总结
前言 一般而言,标题含有“秒杀”,“99%”,“史上最全/最强”等词汇的往往都脱不了哗众取宠之嫌,但进一步来讲,如果读者读罢此文,却无任何收获,那么,我也甘愿背负这样的罪名,:-),同时,此文可以看做是对这篇文章:十道海量数据处理面试题与十个方法大总结的一般抽象性总结。 毕竟受文章和理论之限,本文将摒弃绝大部分的细节,只谈方法/模式论,且注重用最通俗最直白的语言阐述相关问题。最后
2012-10-16 18:52:51
518
转载 【转】最长公共子序列
最长公共子序列(动态规划法解决)(网上转载,该文章分析的不错)给定两个序列X = { x1 , x2 , ... , xm }Y = { y1 , y2 , ... , yn }求X和Y的一个最长公共子序列举例X = { a , b , c , b , d , a , b }Y = { b , d , c , a , b , a }最长公共子序列为LSC =
2012-10-16 17:10:57
519
转载 【转】最近公共祖先的两种解法
最近公共祖先(Least Common Ancestors) 对于有根树T的两个结点u、v,最近公共祖先LCA(T,u,v)表示一个结点x,满足x是u、v的祖先且x的深度尽可能大。另一种理解方式是把T理解为一个无向无环图,而LCA(T,u,v)即u到v的最短路上深度最小的点。 这里给出一个LCA的例子: 对于T= V={1,2,3,4,5} E={(1,2),(1,3
2012-10-16 16:24:39
590
转载 【转】在二元树中找出和为某一值的所有路径
题目:输入一个整数和一棵二元树。从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径。打印出和与输入整数相等的所有路径。例如输入整数22和如下二元树 10 / \
2012-10-16 16:09:36
565
转载 【转】最近公共祖先问题
题目:二叉树的结点定义如下:struct TreeNode{ int m_nvalue; TreeNode* m_pLeft; TreeNode* m_pRight;};输入二叉树中的两个结点,输出这两个结点在数中最低的共同父结点。分析:求数中两个结点的最低共同结点是面试中经常出现的一个问题。这个问题至少有两个变种。第一变种是二叉树是一种特殊的
2012-10-16 15:44:30
492
转载 【转】CRC校验算法
CRC校验算法CRC校验算法 CRC(Cyclic Redundancy Check)循环冗余校验是常用的数据校验方法,讲CRC算法的文章很多,之所以还要写这篇,是想换一个方法介绍CRC算法,希望能让大家更容易理解CRC算法。 先说说什么是数据校验。数据在传输过程(比如通过网线在两台计算机间传文件)中,由于传输信道的原因,可能会有误码现象(比如说发送数字5但
2012-10-15 18:16:29
2146
转载 Linux 关于动态链接库以及静态链接库的一些概念
库有动态与静态两种,动态通常用.so为后缀,静态用.a为后缀。例如:libhello.so libhello.a 为了在同一系统中使用不同版本的库,可以在库文件名后加上版本号为后缀,例如: libhello.so.1.0,由于程序连接默认以.so为文件后缀名。所以为了使用这些库,通常使用建立符号连接的方式。 ln -s libhello.so.1.0 libhello.so.1 ln -s lib
2011-06-08 16:32:00
554
转载 关于static和extern的用法
一些基本概念:1. 编译单元(模块): 在IDE开发工具大行其道的今天,对于编译的一些概念很多人已经不再清楚了,很多程序员最怕的就是处理连接错误(LINK ERROR), 因为它不像编译错误那样可以给出你程序错误的具体位置,你常常对这种错误感到懊恼,但是如果你经常使用gcc,makefile等工具在linux或者嵌 入式下做开发工作的话,那么你可能非常的理解编译与连接的区别!当在VC这样的开发工具上编写完代码,点击编译按钮准备生成exe文件时,VC其实做了两 步工作,第一步,将每个.cpp(.c)和相
2011-02-24 09:41:00
1346
转载 张望“头文件与内联函数”
<br /><br />八月十七号,A友在看C++时豪气地抛给了我一个有关静态数据成员重定义的问题。年轻人总是好匹夫之勇,我当然不例外。 简单了解之后我们便一起稀里糊涂的讨论,直到把这个问题给糊里糊涂地解决掉。这里用了略显夸张的副词,只是为了说明我们之间当时的讨论都是建立在各自残缺的理论基础之上进行的。我们都有自知之明,因此在讨论的时候多以“就我认为”、“据我掌握的知识”、“应该是”作为特定的修饰加以强调,其实也正因为这样,才能把讨论给继续下去,也得以最终将问题解决。<br /> 当我发现自己对一些自
2011-02-24 09:34:00
902
转载 堆和栈的区别
<br />一、预备知识—程序的内存分配 一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(静态区)(static)—,全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始
2010-11-30 16:31:00
341
转载 QQ游戏百万人同时在线服务器架构实现
转自:http://blog.csdn.net/zhanghefu/archive/2009/08/28/4492623.aspxQQ游戏于前几日终于突破了百万人同时在线的关口,向着更为远大的目标迈进,这让其它众多传统的棋牌休闲游戏平台黯然失色,相比之下,联众似乎已经根本不是QQ的对手,因为QQ除了这100万的游戏在线人数外,它还拥有3亿多的注册量(当然很多是重复注册的)以及QQ聊天软件900万的同时在线率,我们已经可以预见未来由QQ构建起来的强大棋牌休闲游戏帝国。 那么,在技术上,QQ游戏到底是如何实现
2010-11-05 11:32:00
382
转载 集群式游戏服务器架构方案设计开发
自从2003年开发VOIP Radius Server以及修改Gnugk依赖,从事服务器开发已经近五年了,对服务器开发也有一些自己独到的看法以及见解。当摆脱了技术本身的束缚之后,才理解重要的并不是某种技术的运用,而是整体设计的考虑,也慢慢明白了设计是开发的灵魂的道理。从技术层面来看,各个平台都有一些自己特有的东西,比如Windows 平台下面的IOCP技术,可以说为了支持大的并发,IOCP是一个Windows平台的必选方案。而在Linux下面Epoll又是所有开发人员需要掌握的技术。当然还有FreeBSD下
2010-11-05 11:30:00
768
算法导论PPT课件(西安电子科技大学硕士课程)
2011-03-31
高质量C++编程指南(林锐著,高清PDF版)
2011-03-31
精选微软数据结构算法面试100题
2011-03-08
算法导论(第2版)参考答案
2011-03-08
MFC下ADO访问数据库的例子程序(精通MFC程序设计第21章)
2011-03-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人