C10k-problem 知识预热: 线程:一般是一个核心对应一个线程的,核心越多,线程越多,处理能力越出色。而因特尔I系列的CPU可以模拟多线程技术,达到更高的处理运算能力,但是因为是模拟的,所以并不能与实际核心相提并论。例如INTEL的I3就是双核4线程,你查看本地计算机属性的时候CPU一项将会显示4核。(当然,要注意的是CPU0 不能用得过狠) I/O :实际情况是,盘片越多,
LRU缓存算法 - C++版 LRU是Least Recently Used的缩写,意思是最近最少使用,它是一种Cache替换算法。 实现思路: hashtable + 双向链表时间复杂度: 插入,查找,删除:O(1)空间使用情况: O(N) :一个链表存储K个数据(stl的hash_map实际占的空间比较大).运行环境: linux:redhat , fedora ,cen
core dump 上篇文章说到valgrind可以打印出程序出错的信息,redis的backtrack机制也可以实现。现在,我再介绍一下简单的打印堆栈的方法 : core 文件(部分内容直接参考别人的文章。)简介:core dump又叫核心转储。 当程序运行过程中发生异常, 程序异常退出时, 由操作系统把程序当前的内存状况存储在一个core文件中, 叫core dump
linux的信号处理和实际使用(结合redis分析) 最近比较多朋友问我常见的信号和一些信号实际的应用。所以,我简单总结一下,让大家对信号有清晰的理解。我自己写的系统里面,我是直接参考redis的信号处理机制的。redis是这样处理信号的:如果系统支持 HAVE_BACKTRACK,即是:#if defined(__APPLE__) || defined(__linux__) || defined(__sun)#defin
beansdb 结构简单描述 beansdb是豆瓣的key-value分布式系统beansdb可以部署在多个节点上。有proxy集中管理。方便简单。beansdb结构:Hstore{ (节点)0 ~ (节点E); 每个节点默认16开,即0~F号biscask; 每个biscask有一个hash tree做索引;}大概如上结构。
windows下安装JDK 1:登陆 http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html如图:选择Accept License Agreement2:下载对应版本,windows 32位的下载X86, windowos 64位下载X64
简单的爬虫 前文提到,nodejs可以做很多东西。但是,我一直觉得,nodejs是不合适去写网站的,至少现在不合适。所以,在这里我介绍怎么用nodejs去做一个简单的爬虫。(想了解nodejs怎么写网站的话,你可以点这里:https://github.com/nswbmw/N-blog/wiki/_pages)接下来我要实现的爬虫的功能:访问一个url,然后获取里面必要的信息。准备
nodejs的总结 简介: Javascript之所以能在浏览器运行,是因为浏览器提供一个“上下文环境”,它定义了Javascript可以做什么事情。 Nodejs,说白了,其实也是一个“上下文环境" , 这个上下文环境,允许在后端运行Javascript代码。 Nodejs使用Google的V8虚拟机,来解析和执行Javascript代码。 所以,nodejs
CSS的属性缩写 CSS字体属性:.mydiv {font-family:Verdana, Geneva, sans-serif;font-size:12px;font-weight:bold;line-height:180%;font-variant:small-caps;font-style:italic;}可以优化简写为一行:.mydiv {font: bold
Linux命令 之 chmod 说明 : 1:Linux/Unix 的档案存取权限分为三级 : 档案拥有者、群组、其他。2:文件或目录的一般权限分别是:读取,写入,执行。权限范围的表示法如下:u:User,即文件或目录的拥有者。g:Group,即文件或目录的所属群组。o:Other,除了文件或目录拥有者或所属群组之外,其他用户皆属于这个范围。a:All,即全部的用户,包含拥有者
Play2 连接 Mysql配置 添加包的支持。有两种方法。第一种:在Build文件里面,添加配置信息。直接上代码:import sbt._import Keys._import play.Project._object ApplicationBuild extends Build { val appName = "dbMysql" val appVersion = "
JavaScript浏览器地址栏特效 随便打开个网站。当然,打开个多图的网站好玩点。然后,在地址栏敲下如下代码。javascript:R=0;x1=.1;y1=.05;x2=.25;y2=.24;x3=1.6;y3=.24;x4=300;y4=200;x5=300;y5=200;DI=document.getElementsByTagName("img");DIL=DI.length;function A(){
javascript优化策略 技巧二 1、字符串的拼接 字符串的拼接在我们开发中会经常遇到,所以我把其放在首位,我们往往习惯的直接用+=的方式来拼接字符串,其实这种拼接的方式效率非常的低,我们可以用一种巧妙的方法来实现字符串的拼接,那就是利用数组的join方法。//效率低的function func1(){var start = new Date().getTime();var templ
五:ORM框架Morphia的学习-Update 介绍有两种方法更新啦。第一种: insert/save 。第二种: update operation。下面开始讨论。.Updating (on the server)当你调用update方法时,你其实就是发生一个修改命令给数据库。作用?当然是修改已存在的数据啦。MongoDB Docs on Updatinginterface Datasto
四:ORM框架Morphia的学习-Datasotre Datastore的接口。当然看官方的wiki最好啦。改天有时间再完整翻译本文。DatastoreDatastore接口提供了安全类型的方法,来访问和保存java对象。它提供了CRUD的基本方法。Get MethodsGet methods return instance(s) of your entities by its @Id. It is r
三:ORM框架Morphia的学习-索引的创建 直接上代码@Entitypublic class Product { @Id private ObjectId id; @Indexed(value=IndexDirection.ASC, name="upc", unique=true, dropDups=true) private String upcSymbol;...}看到
二:ORM框架Morphia的学习-Entity和Embedded的简单使用 首先,搭好你的环境。配好你的包。需要的jars包有:mongo-java-driver-2.xx.jar , morphia-0.xx.jar假设我们有两个类,hotel和addresspublic class Hotel { private String name; private int stars; private Address a