自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

memcached java client性能测试的几点疑问和说明

最近java memcached client发布了2.6.1版本,号称性能提升了300%,这是相对于原始主干代码来说。这个改进是由国人做的一个分支,首先得向他们致敬,great job。 我这里想谈的主要是这个新闻里的性能测试,从他们的测试结果来看java memcached client的性能确实非常优秀。但是我认为这个测试并不能算非常公平的测试,有几点需要开发者来澄清和说明一下。...

2011-06-29 10:40:34 211

原创 本Blog不维护了,请订阅我在blogjava的博客

 这个博客很长时间没有维护了,过去两年都在blogjava写博客,有兴趣的朋友可以关注下: http://blogjava.net/killme2008

2011-05-31 00:37:03 231

scheme中文编程

受javaeye上的《Ruby中文编程》启发,帖子中有人提到如果if这样的关键字都可以定义成中文,那就是真正的中文编程。那时我就想到,这个其实要在scheme中实现是多么简单,将sicp书中的解释器稍微修改下就可以了,只要修改解析的部分即可。解释器的完整代码放后面,我们先看看有趣的例子:(定义 你 '男)(当 ((是 你 '男) (打印 '男人是泥土做的))    ((是 ...

2009-03-20 23:27:00 639

传说中的精确广告投放

本图不针对任何网站和个人,仅仅是因为很离谱。

2009-03-19 19:04:00 178

memcached分布测试报告(一致性哈希情况下的散列函数选择)

一、背景资料    memcached本身是集中式的缓存系统,要搞多节点分布,只能通过客户端实现。memcached的分布算法一般有两种选择:1、根据hash(key)的结果,模连接数的余数决定存储到哪个节点,也就是hash(key)%sessions.size(),这个算法简单快速,表现良好。然而这个算法有个缺点,就是在memcached节点增加或者删除的时候,原有的缓存数据将大规模失效...

2009-03-10 16:30:37 166

xmemcached发布1.0-BETA版

   xmemcached发布1.0-beta,从0.60直接到1.0-beta,主要改进如下:1、支持更多协议,在已有协议支持的基础上添加了append、prepend、gets、批量gets、cas协议的支持,具体请查看XMemcachedClient类的实例方法。重点是cas操作,下文将详细描述下。2、memcached分布支持,支持连接多个memcached server,支持...

2009-03-09 15:32:00 107

Xmemcached vs Spymemcached 3th(linux下测试结果和多节点下表现)

翠花,上图,首先是容器类和自定义对象的get、set在不同并发下的表现    很明显,在linux下,spymemcached读写复杂对象的效率远远超过在windows下的表现,xmemcached在两个平台之间表现平稳,在linux上get效率低于spymemcached,差距比较大,准备再优化下;set效率略高于spymemcached。    xmemcached  0....

2009-03-07 10:43:00 168

xmemcached 0.60 优化过程

   充分利用jprofile等工具观察性能瓶颈,才能对症下药,盲目的优化只是在浪费时间,并且效果可能恰恰相反1、观察到CountDownLatch.await占据最多CPU时间,一开始认为是由于jprofiler带来的影响,导致这个方法调用时间过长,从而忽略了这一点,导致后面走了不少弯路。实际上await方法占用50%的CPU,而网络层和序列化开销却比较低,这恰恰说明这两者的效率低下,没...

2009-03-06 14:37:00 93

XMemcached Vs. Spymemcached 2th(最新0.6测试结果)

测试1:开N个线程读写删各10000次,key是String,Value是Integer,数据单位皆为TPS 线程数          set           get         delete  xmemcached spymemcached xmemcachedspymemcached  xmemcache...

2009-03-06 12:36:00 138

XMemcached介绍(发布1.10-RC1)

xmemcached发布1.0-beta,从0.60直接到1.0-beta,主要改进如下:1、支持更多协议,在已有协议支持的基础上添加了append、prepend、gets、批量gets、cas协议的支持,具体请查看XMemcachedClient类的实例方法。重点是cas操作。2、memcached分布支持,支持连接多个memcached server,支持简单的余数分布和一致性哈希分布...

2009-03-04 19:33:48 112

基于java nio的memcached客户端——xmemcached

1、xmemcached是什么?xmemcached是基于java nio实现的memcached客户端API。 实际上是基于我实现的一个简单nio框架 http://code.google.com/p/yanf4j/的基础上实现的(目前是基于yanf4j 0.52),核心代码不超过1000行,序列化机制直接挪用spymemcached的Transcoder。 性能方面,在读写简单类型上...

2009-03-03 16:31:00 107

yanf4j引入了客户端非阻塞API

yanf4j发布一个0.50-beta2版本,这个版本最重要的改进就是引入了客户端连接非阻塞API,主要最近的工作要用到,所以添加了。两个核心类TCPConnectorController和UDPConnectorController分别用于TCP和UDP的客户端连接控制。例如,现在的UDP echo client可以写成:     //客户端echo handler    ...

2009-02-19 00:15:00 141

指针与数组

一、什么时候数组和指针是相同的1、表达式中的数组名(与声明不同)被编译器当作一个指向该数组第一个元素的指针因此如a[i]这样的访问都被编译器改写或解释为*(a+i)的形式,同样取下标操作符的操作数是可交换的,所以a[3]可以写成3[a],不过通常你不会这样做。2、下标总是与指针的偏移量相同,下标*sizeof(元素类型)就是偏移数组起始地址的实际字节数。3、“作为函数参数的数组名”等同...

2009-02-17 00:05:00 98

无路用的人

   最近的心情可以用一首歌来形容,阿岳的《无路用的人》,唱到心坎里了。无路用是闽南语,是指一个人没啥出息,没做出什么事情。在厦门一个多月了,有点不坚定,有点彷徨,有点郁闷,无以形容。每天我醒来在床上就在发呆我的脑袋跟天花板一样空白昨天在干嘛 明天要干嘛我的灵魂 似乎不在我的身上唉呀 未接电话那么多我想 狗屁事也非常多好希望 这是一场梦可以让我 轻轻松松忘掉很多哇勒干 怎么可能...

2009-02-16 22:36:00 415

山寨nio框架yanf4j发布0.50-alpha

俺的山寨nio框架yanf4j发布0.50-alpha版本,下载地址在这里,更新了wiki。本测试版本主要修改如下:1、Controller接口引入了两个新方法:a)接受InetSocketAddress类型参数的系列open方法,用以在多宿主机上绑定到不同网络接口         public void open(InetSocketAddress inetSocketA...

2009-02-04 19:28:00 127

ACE_Select_Reactor在win32上编译的小问题

    ACE_Reactor在windows上默认不是使用ACE_Select_Reactor,而是ACE_WFMO_Reactor(封装了WaitForMultipleObjects和WSAEventSelect)。如果想选择ACE_Select_Reactor,如:ACE_Select_Reactor select_reactor;ACE_Reactor reactor (&s...

2009-02-03 15:40:00 133

ACE Reactor的Echo Server

相对完整的修改版本  1 /************************************************************************   2 * @file: echo.cpp                                                      3 * @author: dennis  4 * @revise:...

2009-02-03 11:59:00 83

再谈Selector的wakeup方法

过去推荐过两篇blog《Java NIO类库Selector机制解析》(上,下),感叹java为了跨平台似乎“很傻很天真”。最近学习使用ACE,才知道这个解决办法倒不是java开创的,ACE也是这样搞的。java nio中Selector的wakeup方法,类似于ACE_Select_Reactor的notify机制,可以从非select调用的线程去唤醒阻塞在select调用上的select线...

2009-02-01 11:15:00 1505

可笑的优化

这几天没事做的时候都会上projecteuler.net上面去做题,其中14题是这样的:he following iterative sequence is defined for the set of positive integers:n n/2 (n is even)n 3n + 1 (n is odd)Using the rule above and star...

2009-01-23 00:08:00 78

yanf4j-0.41 beta发布

项目名称:yanf4j (yet another nio framework for java)项目网址:http://code.google.com/p/yanf4j/下载网址:http://code.google.com/p/yanf4j/downloads/list0.41 beta版的主要修改:1、引入流量控制,通过Controller的setReceivePacketRat...

2009-01-20 14:01:00 119

Java字符串的最大长度

在cpp中为了可移植性,string的长度是string::size_type,突然就想知道java允许的最大字符串长度为多少。看String的源码:public final class String  110       implements java.io.Serializable, Comparable<String>, CharSequence ...

2009-01-15 01:37:00 1568

使用yanf4j写个简单聊天室

yanf4j简介,请看这里。    这里俺要介绍下用yanf4j写个最简单的聊天室,可以直接telnet上去聊天。请先下载common-logging和yanf4j-0.40-stable-bin.tar.gz。    聊天室嘛,肯定要维护一个聊天者聊表:List<Session> sessionList = new CopyOnWriteArrayList...

2008-11-26 11:36:00 170

安装配置Emacs-rails

    首先你的机器上肯定要安装emacs啦,此步略过不表。 1、从 http://rubyforge.org/projects/emacs-rails 下载最新emacs-rails,解压文件到~/.emacs.d/rails 目录 2、根据README,你需要下载三个依赖库:cd ~/.emacs.d/railswget http://www.kazmier.com/computer/...

2008-11-23 02:22:00 76

ubuntu下解决Ruby安装后缺少openssl的问题

    一开始尝试使用    sudo apt-get install libopenssl-ruby1.8    安装是安装成功了,但是仍然提示找不到openssl。还是决定从源码安装,首先确保ubuntu安装了openssl:    sudo apt-get install openssl    sudo apt-get install libssl-dev    sudo apt-...

2008-11-23 01:34:00 400

sicp 4.4.1小节习题

    本节开始进入第4章最后一部分——逻辑程序设计。scheme将实现一种查询语言,非常类似prolog。由于解释器的实现在后面,还未读到,前面的习题我都将用prolog做测试,当然也给出scheme版本的解答,待以后测试。    首先给出依照书中所述写出的prolog事实库:address('BitDiddle Ben','Slumerville','Ridge Road',10).a...

2008-11-22 13:27:00 187

完整的scheme amb求值器

    在第二个分析求值器的基础上实现了完整的amb求值器,在drscheme选择R5RS标准下测试通过。注意,在show details面板里将disallow redefinition of initial bindings选项去掉,允许重定义过程。给出完整代码:(define apply-in-underlying-scheme apply)(define (amb-eval exp e...

2008-11-18 20:41:00 279

终于跑了一万米

    跑步快3个月了,其实并没有天天跑,基本每周都休息两三天。今天终于挑战了下一万米,开跑前两个小时吞了点面包,喝了两碗淡盐水。最后一千米膝盖开始有点僵,最后估计花了50多分钟快一小时,仅作纪念。长跑准备一星期来这么一次,平时还是四五千米为好。...

2008-11-16 18:37:00 161

使用Ruby amb解决说谎者谜题

    说谎者谜题是sicp4.3.2小节的一道题目,题目本身不难:五个女生参加一个考试,她们的家长对考试结果过分关注。为此她们约定,在给家里写信谈到考试的时候,每个姑娘都要写一句真话和一句假话。下面是从她们的信里摘抄出来的句子:Betty : kitty考第二,我只考了第三Ethel : 你们应该很高兴听到我考了第一,joan第二joan :   我考第三,可怜的Ethel垫底kitt...

2008-11-15 18:50:00 184

降低JRuby的内存占用的可能方法

    JRuby的内存占用是比较高的,毕竟需要启动一个JVM以及构建抽象语法树等,一般同一个脚本的内存占用都是CRuby的几十倍甚至上百倍。记的Infoq上有过一个新闻是说sun跟东京某大学合作研究Ruby和JRuby的MVM,可以在几个VM之间共享解释器,可以在启动多个VM的时候大大降低内存占用。不过这个项目暂时没有什么消息,要想在实际中应用更是没影的事情。有无其他解决办法?今天看到IBM D...

2008-11-15 00:58:00 177

sicp 4.3.2部分习题

4.38,谜题就有翻译错误,问题更是错的离谱。原题是这样的:Baker, Cooper, Fletcher, Miller, and Smith live on different floors of an apartment housethat contains only five floors. Baker does not live on the top floor. Cooper d...

2008-11-15 00:02:00 170

sicp 4.3.1小节两题

本节开始介绍神奇的amb函数,为引入逻辑程序设计做铺垫。关于amb,有清华王垠的一个文档:http://cs2.swfc.edu.cn/~wanghuan/wangyin1/amb/amb.html4.35,与an-element-of类似:(define (an-integer-between low high)  (require (not (> low high)))  (...

2008-11-04 01:20:00 106

sicp 4.2.2小节部分习题

4.27,;;; L-Eval input:(define count 0);;; L-Eval value:ok;;; L-Eval input:(define (id x)  (set! count (+ 1 count))  x);;; L-Eval value:ok;;; L-Eval input:(define w (id (id 10)));;;...

2008-11-02 01:18:00 128

sicp 4.2.1两题

4.25,如果在scheme解释器的应用序求值下,unless定义为一个过程,那么(* (factorial (- n 1))将无穷递归下去。如果在正则序时,由于延时求值,仅当需要计算时才求值此表达式,不会造成无穷递归,在1的时候正常结束递归。4.26,在上一节求值器的基础上定义unless的语法形式还是很简单的,首先在analyze过程添加分析unless: ((unless? e...

2008-10-31 23:12:00 118

swfheader 0.10 Released

   swfheader是一个处理swf文件的工具脚本,可用于读取swf文件头信息、压缩和解压缩swf文件。很早以前发布过一个0.01版。最近复审了代码,发现了一个愚蠢的读二进制文件错误导致没办法正确的解压或者压缩swf文件。今天更正了此bug,重构了部分代码并做了更多测试,已经可以正常使用。项目地址:http://code.google.com/p/swf-util/项目描述: ...

2008-10-11 23:41:35 101

Yet another nio framework for java

项目名称:Yanf4j(Yet another nio framework for java)项目地址:http://code.google.com/p/yanf4j/,当前版本0.30-beta1协议:Apache License, Version 2.0 简单描述:    有这么多nio框架了,为什么要another?重复造轮子也罢,这框架脱胎于一个服务器项目的网络层代码,期间参考了...

2008-10-11 14:25:00 148

漂亮的代码

    Ruby的创造者为《代码之美》撰写的文章标题是《代码如散文》。程序和散文有一些共性,首先是两者都必须有清晰的意图,散文内容是什么,想表达什么,程序的功能是什么,能做什么;其次两者在意图的表达上(功能的实现上)都依赖于写作的具体风格,编程的隐喻之一就是写作。你想表达的思想是好的,但是如果表达得难以理解,那么要把这个思想传播给读者将非常困难。代码被读和修改的次数是相当多的,因此一个很重要的观点...

2008-10-09 23:58:00 147

Ruby Tip——读文件

 Ruby如何简洁地读整个文件,你可以这样做:f=File.open("test.log","r")result=''f.each_line do |line|   result+=lineendputs result但是,更简洁的方法是:File.open("test.log","r"){ |f| f.collec...

2008-10-07 09:38:00 78

一封邮件

    今天邮箱里收到的一封邮件,标题是《寻找好心人帮忙,不介意保养我》,人名就不列出来了,石化中。你好,我叫XX,今年20岁,是XX的一名在校大学生,因为家里贫穷,妈妈又得了重病,家里再也没钱供我读书了,想寻找好心的人资助我读大学,(附件有我的照片)如能供我读大学并出钱为妈妈治病,要我做任何事都可以,能包养我是最好的!希望好心人尽快与我联系,资助多少都感谢你,我会尽量报答好心人的。...

2008-10-04 14:02:00 173

Ruby 1.9概要(5) 异常

1、异常的相等性,如果两个异常的class、message和backtrace一样,那么认为这两个异常是相等的,可以通过==判断。def method    raise 'foobar'enderrors = []2.times do    Thread.new do      begin        method      rescue =>...

2008-10-03 13:26:00 99

Ruby 1.9概要(4) Block和Proc

1、Proc加了新方法Proc#yield,这只是Proc#call的别名方法,是为了能让Proc也可以像block那样传入方法并且调用yield。a_proc = Proc.new {|a,b| a+b}a_proc.yield(1,2) # => 3def test(&block)  block.yield(1,2...

2008-10-02 13:54:00 79

空空如也

空空如也

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

TA关注的人

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