自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 缓存淘汰算法--LRU算法

缓存淘汰算法--LRU算法            1. LRU1.1. 原理LRU(Least recently used,最近最少使用)算法根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高”。1.2. 实现最常见的实现是使用一个链表保存缓存数据,详细算法实现如下:1. 新数据插入到链表头部

2015-11-02 11:53:20 927

转载 C++11 多线程下生产者消费者模型详解

http://www.cnblogs.com/haippy/p/3252092.html前面八章介绍了 C++11 并发编程的基础(抱歉哈,第五章-第八章还在草稿中),本文将综合运用 C++11 中的新的基础设施(主要是多线程、锁、条件变量)来阐述一个经典问题——生产者消费者模型,并给出完整的解决方案。生产者消费者问题是多线程并发中一个非常经典的问题,相信学过操作系统课程的

2015-11-02 11:13:20 2414

转载 tcmallo

这是一个通用的内存管理库,可以代替new delete之类。内存管理主要关注两点,一是分配、释放的速度,二是内存的利用率,也就是内存碎片问题。这两个目标是冲突的,不同的内存管理算法在两者之间取不同的平衡点为了提高分配、释放的速度,多核计算机上,主要做的工作是避免所有核同时在竞争内存,常用的做法是内存池,简单来说就是批量申请内存,然后切割成各种长度,各种长度都有一个拉链,申请、释放都只要

2015-10-20 14:54:14 388

转载 程序算法与人生选择

1 几个例子 当我们在面对各种对选择的影响因子的时候,如:城市,公司规模,公司性质,薪水,项目,户口,技术,方向,眼界…… 你总会发现,你会在几个公司中纠结一些东西,举几个例子:某网友和我说,他们去上海腾讯,因为腾讯的规模很大,但却发现薪水待遇没有豆瓣高(低的还不是一点),如果以后要换工作的话,起薪点直接关系到了以后的高工资。我说那就去豆瓣吧,他说豆瓣在北京,污染那么严重,

2015-10-20 14:27:57 348

转载 Memcached源码分析(线程模型)

http://bachmozart.iteye.com/blog/344172目前网上关于memcached的分析主要是内存管理部分,下面对memcached的线程模型做下简单分析有不对的地方还请大家指正,对memcahced和libevent不熟悉的请先google之先看下memcahced启动时线程处理的流程memcached的多线程主要是通过实例化多个li

2015-10-20 14:06:28 285

转载 Linux性能测试工具

 在测试中,我们不仅需要查看系统日志信息,而且还要使用大量的性能监测工具来关注某些地方,如内存、CPU等。在Linux系统中,所有的运行参数保存在虚拟目录/proc中,换句话说,我们使用的性能监控工具取到的数据值实际上就是源自于这个目录,下面就让我们了解一下这些常用的性能监控工具。 uptime 系统平均负载率 dmesg 硬件/系统信息 top 进

2015-10-14 17:28:45 311

转载 mmap 浅析

mmap简述 mmap函数是unix/linux下的系统调用。《Unix Netword programming》对它的介绍为:The mmap function maps either a file or a Posix shared memory object into the address space of a process.We use this function for

2015-10-14 17:26:31 235

转载 Linux代码安全

 这里要讲的是帮助我们构建更加强健的代码的各种技术。        1 .缓冲区溢出问题        缓冲区是一个非常严重的  安全问题,最好的情况下可能导致软件的行为错乱;严重时将会导致被缓冲区利用程序所控制而执行任何攻击者所想要执行的代码。请看下面的示例代码:    static char ourArray[100];        ...        in

2015-10-14 16:57:11 281

转载 Linux C 编程环境之工具链

 从理论上说编译一个程序依次需要下面几个工具:C预处理器-->词法分析器-->代码生成器-->优化器-->汇编程序-->链接器。linux下有两个软件包binutils、gcc包括了上面的所有工具。  1. binutils工具 Binutils 是一组很重要的开发工具,包括链接器(ld)、汇编器(as)、反汇编器(objdump)和其他用于目标文件和档案的工具

2015-10-14 13:57:35 497

转载 EPOLL的LT和ET触发方式介绍

EPOLL的LT和ET触发方式介绍  一、什么是EPOLL      linux网络编程中,很长时间用的都是select来触发事件,但是select存在如下几个缺点: 1、在Linux内核中,select所用到的FD_SET是有限的,即内核中有个参数__FD_SETSIZE定义了每个FD_SET的句柄个数,当然你可以通过修改这个宏重新编译内核来扩大数量,但是这样会带来网络性

2015-10-14 13:45:32 463

转载 双向循环链表的增删查操作

双向循环链表的增删查操作typedef structDNode{    ElemType data;struct DNode *prior, *next;}DNode, * DoubleList;插入操作:intDlinkIns(DoubleList L, int i, ElemType e){ DNode *s, *p;s=(DNode*) mal

2015-10-14 11:53:12 483

转载 解析C++的虚函数表

C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。  关于虚函数的使用方法,我

2015-10-14 11:11:24 214

转载 几个C++ 题目

第1题:realloc,malloc,calloc的区别:三个函数的申明分别是: void* realloc(void* ptr, unsigned newsize); void* malloc(unsigned size); void* calloc(size_t numElements, size_t sizeOfElement); malloc调用形式为(类型*)

2015-10-12 17:05:48 256

原创 c++容器概述

c++容器:有了对数据结构的基本认识,那么对高级语言所提出的容器的概念就很容易理解。下面我们就来了解一下C++ 标准模板库(STL) 提所供的10 种通用容器。什么是容器首先,我们必须理解一下什么是容器,在C++ 中容器被定义为:在数据存储上,有一种对象类型,它可以持有其它对象或指向其它对像的指针,这种对象类型就叫做容器。很简单,容器就是保存其它对象的对象,当然这是一个朴素的理

2015-10-12 17:03:05 362

原创 C++ 资源

非常好的资源http://isocpp.org/wiki/faqhttp://www.stroustrup.com/C++11FAQ.htmlhttp://www.stroustrup.com/bs_faq.htmlhttp://www.stroustrup.com/bs_faq2.htmlhttp://herbsutter.com/gotw/http://herb

2015-10-12 16:54:12 523

转载 Linux init

Linux 启动时,运行一个叫做init 的程序,然后由它来启动后面的任务,包括多用户环境,网络等。那么,到底什么是运行级呢?简单的说,运行级就是操作系统当前正在运行的功能级别。这个级别从1 到6 , 具有不同的功能。这些级别在/etc/inittab 文件里指定。这个文件是init 程序寻找的主要文件,最先运行 的服务是那些放在/etc/rc.d 目录下的文件。大多数的Linux 发行版

2015-08-10 20:34:29 249

转载 iptables

一:前言防火墙,其实说白了讲,就是用于实现Linux下访问控制的功能的,它分为硬件的或者软件的防火墙两种。无论是在哪个网络中,防火墙工作的地方一定是在网络的边缘。而我们的任务就是需要去定义到底防火墙如何工作,这就是防火墙的策略,规则,以达到让它对出入网络的IP、数据进行检测。目前市面上比较常见的有3、4层的防火墙,叫网络层的防火墙,还有7层的防火墙,其实是代

2015-06-25 18:58:05 281

转载 SQUID工作原理是什么

SQUID工作原理是什么 2009-07-15 18:51:24分类: Linux一、SQUID缓存的存放方式:每一台Squid 代理服务器上都有若干颗硬盘,每颗硬盘又分割成多个分区,每一个分区又可建立很多目录,目录下才放文件(Squid 把它叫object)。二、SQUID的查询方式:SQUID通过查询表的方式来定位某个资源的位置,所查询的表叫

2015-06-25 15:19:38 484

转载 Ajax 完整教程

Ajax 完整教程第 1 页 Ajax 简介Ajax 由 HTML、JavaScript™ 技术、DHTML 和 DOM 组成,这一杰出的方法可以将笨拙的 Web 界面转化成交互性的 Ajax 应用程序。本文的作者是一位 Ajax 专家,他演示了这些技术如何协同工作 —— 从总体概述到细节的讨论 —— 使高效的 Web 开发成为现实。他还揭开了 Ajax 核心概念的神秘面纱,包

2015-06-23 19:38:02 496

转载 Redis学习

http://www.cnblogs.com/stephen-liu74/category/354125.htmlRedis学习手册(开篇)http://www.cnblogs.com/stephen-liu74/archive/2012/02/13/2348935.html一、简介二、Redis的优势三、目前版本中Redis存在的主要问题四、和关系型数据库的比较

2015-06-23 17:21:01 327

转载 memcached完全剖析

http://kb.cnblogs.com/page/42731/memcached是什么?memcached 是以LiveJournal 旗下Danga Interactive 公司的Brad Fitzpatric 为首开发的一款软件。现在已成为 mixi、 hatena、 Facebook、 Vox、LiveJournal等众多服务中 提高Web应用扩展

2015-06-23 15:10:42 253

转载 缓存机制

一、前端Cache机制1. 域名转为IP地址(域名服务器DNS缓存)我们知道域名其实只是一个别名,真实的服务器请求地址,实际上是一个IP地址。获得IP地址的方式,就是查询DNS映射表。虽然这是一个非常简单的查询, 但如果每次用户访问一个url都去查询DNS一次,未免显得太频繁,会产生一个可怕的访问量级。DNS服务器会告诉你,你别老是经常过来,万一我挂了,我们就无法愉快地玩耍了。

2015-06-23 10:13:51 1560

转载 大型网站架构设计

引言近段时间以来,通过接触有关海量数据处理和搜索引擎的诸多技术,常常见识到不少精妙绝伦的架构图。除了每每感叹于每幅图表面上的绘制的精细之外,更为架构图背后所隐藏的设计思想所叹服。个人这两天一直在搜集各大型网站的架构设计图,一为了一饱眼福,领略各类大型网站架构设计的精彩之外,二来也可供闲时反复琢磨体会,何乐而不为呢?特此,总结整理了诸如国外wikipedia,Facebook,Yahoo!,YouT

2015-06-19 12:06:24 488

转载 HTTP协议详解

HTTP协议详解(真的很经典)2008-11-03 09:11 by Hundre, 475513 阅读, 29 评论, 收藏, 编辑转自:http://blog.csdn.net/gueter/archive/2007/03/08/1524447.aspxAuthor :Jeffrey引言                                        

2015-06-09 19:54:15 220

转载 PHP 正则表达式常用函数使用小结

http://www.jb51.net/article/19840.htm在PHP中有两套正则表达式函数库。一套是由PCRE(Perl Compatible Regular Expression)库提供的。PCRE库使用和Perl相同的语法规则实现了正则表达式的模式匹配,其使用以“preg_”为前缀命名的函数。另一套是由POSIX(Portable Operation System

2015-05-26 19:29:47 255

转载 PHP常用正则表达式汇总

PHP常用正则表达式汇总 [复制链接]上一主题下一主题 http://bbs.php100.com/read-htm-tid-83266.html2.    "^\d+$"  //非负整数(正整数 + 0) 3.    "^[0-9]*[1

2015-05-26 19:08:06 242

转载 Lua脚本语法说明(修订)

Lua脚本语法说明(修订)http://www.cnblogs.com/ly4cn/archive/2006/08/04/467550.htmlLua脚本语法说明(增加lua5.1部份特性)  Lua 的语法比较简单,学习起来也比较省力,但功能却并不弱。  所以,我只简单的归纳一下Lua的一些语法规则,使用起来方便好查就可以了。估计看完了,就懂得怎么写Lua

2015-05-07 16:22:18 333

转载 PHP获取当前域名$_SERVER['HTTP_HOST']和$_SERVER['SERVER_NAME']的区别

PHP获取当前域名$_SERVER['HTTP_HOST']和$_SERVER['SERVER_NAME']的区别    http://blog.snsgou.com/post-749.htmlhttp://www.w3school.com.cn/php/func_string_stripos.asp开发站群软件,用到了根据访问域名判断子站点的相关问题,PHP获

2015-05-05 16:04:58 13865

转载 HTTP协议详解

HTTP协议详解(真的很经典)转自:http://blog.csdn.net/gueter/archive/2007/03/08/1524447.aspxAuthor :Jeffrey引言                                        HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统

2015-05-05 15:22:55 268

翻译 LevelDB 关键算法概述

•LevelDB是Google开源的一套键值存储引擎,它是受BigTable中SSTable的启发,去除了SSTable中的一些库依赖,完善了一些细节后修改而成,虽然没在BigTable中使用,但数据的格式与组织方法与SSTable基本同出一辙,目前主要在Chrome中使用。•LevelDB是典型的LSM-Tree的实现,支持rangequery。•LevelDB采用Skip-

2015-03-20 10:28:50 519

翻译 http 和https 的区别及性能差异

http使用TCP 三次握手建立连接,客户端和服务器需要交换3个包,https除了 TCP 的三个包,还要加上 ssl握手需要的9个包,所以一共是12个包。http 建立连接,按照下面链接中针对Computer Science House的测试,是114毫秒;https建立连接,耗费436毫秒。ssl 部分花费322毫秒,包括网络延时和ssl 本身加解密的开销(服务器根据客户端的信息确定是

2015-03-18 17:02:21 1329

转载 iOS开发路线简述

iOS开发路线简述iOS系统以及iPhone的出来都要感谢乔布斯,一个完美主义者,从如此优秀的iOS系统和iPhone就可以看出来。下面就简单介绍一下我iOS开发的感受,也是学习iOS开发的一个体系架构。1 iOS开发环境1.1 开发环境标准的配置是MacOSX+Xcode。MacOSX的话首选用苹果电脑,macmini最便宜

2015-03-17 20:50:52 352

原创 epoll 和select

select:轮循方式察看句柄集状态是否变化;FDSET大小受限,虽然可增大,但轮循效率随着FDSET增大而明显下降;epoll(linux 2.6内核)epoll为处理大批量句柄而作了改进的poll。要使用epoll只需要这三个系统调用:epoll_create(2), epoll_ctl(2), epoll_wait(2)。 它是在2.5.44内核中被引进的(e

2015-03-17 17:07:48 299

原创 reactor 模式

•一种基于事件驱动的设计模式•同步地同时接收的多个服务请求。•将一个或多个客户的服务请求分解(demultiplex)和派发(dispatch)给应用程序。•句柄(Handle)•分离器(Demultiplexer)•事件处理器(Event)•反应器(Reactor)

2015-03-10 20:15:38 268

转载 apache/lighttpd/nginx 对比

1. lighttpdLighttpd是一个具有非常低的内存开销,cpu占用率低,效能好,以及丰富的模块等特点。lighttpd是众多OpenSource轻量级的web server中较为优秀的一个。支持FastCGI, CGI, Auth, 输出压缩(output compress), URL重写, Alias等重要功能。Lighttpd使用fastcgi方式运行php,

2015-03-10 18:40:44 305

转载 如何打造一款好的社区产品

http://blog.csdn.net/lzpsnake/article/details/8472510如何打造一款好的社区产品,如何去吸引用户、激发用户的参与热情,如何维持社区的长久发展动力,这是一个长久的难题。本文的作者韩叙(@韩叙HanXu)担任百度的高级产品运营,而文章中涉及到的俞军、李明远等都是国内久经沙场的产品设计、运营老手,在2007(2006年?)年的

2015-03-10 17:55:21 624

转载 前端技术

静态和伪静态优缺点:1.静态的好处是生成了html文件,那么访问量高的时候,服务器的I/O是一个瓶颈。但数据库的压力小了,而且更新的时候,需要重新生成。2.伪静态I/O的瓶颈比静态的要小,但是数据库的压力比较大。如果访问量和并发比较大的话,就使用静态吧。静态文件分发、分布式非常容易,使用CDN很方便,一般不过期,海量流量应付很轻松,只需加CDN带宽即可。

2015-03-10 17:52:19 493

原创 hive 介绍

1.概述  Hive是建立在Hadoop上的数据仓库基础构架。它提供了一系列的工具,可以用来进行数据提取转化加载(ETL),这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制  Hive定义了简单的类SQL查询语言HQL,它允许熟悉SQL的用户查询数据,也允许熟悉Map/Reduce的开发者开发自定义的mapper和reducer来处理内建的mapper和red

2015-03-03 17:51:49 409

原创 机器学习概论

与其重视模型的细节,不如花时间研究业务和数据

2015-03-03 17:35:59 422

转载 为什么选用 Scala

为什么选用 Scala    当今的企业和互联网应用程序必须平衡一系列的要点。它们要有快速而可靠的实现。新的功能要能在短时间内通过周期渐进的方式加入。除了简单地提供商务逻辑之外,应用程序必须支持访问安全控制,数据持久化,事务,和其它的进阶功能。程序必须高度易用和可扩展,同时要求支持并发和分布式计算。应用程序会被网络化,并且提供人和机器都易于使用的接口。    要达成这些挑战,许多软件开发者

2015-03-02 19:31:15 678

空空如也

空空如也

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

TA关注的人

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