2010年12月2日

Java中的System.nano()很慢

System.nano()调用耗时450 nano,超级慢,比new Object()的操作慢100倍。

经一群无聊好事者查证,System.nanoTime()在linux下的实现,最终调用clock_gettime系统函数。

100万次调用耗时,java语言中System.nanoTime()和C语言中的clock_gettime()调用时间基本一致,所以System.nanoTime()慢的原因就是系统调用clock_gettime。

无聊好事者请注意,自行测试System.nanoTime()性能时,要这样写:
for (int i = 0; i < 1000 * 1000++i) {
    
long v = System.nanoTime();
}

而不能这样写:
for (int i = 0; i < 1000 * 1000++i) {
    System.nanoTime();
}


posted @ 2010-12-02 21:06 温少 阅读(354) 评论(0) 编辑

2010年7月29日

新写了一个Java并发程序设计教程

新写了一个Java并发程序设计教程, 用于公司内部培训的,和2007年写的那个相比,内容更翔实一些。

内容列表

1、使用线程的经验:设置名称、响应中断、使用ThreadLocal

2、Executor :ExecutorService和Future ☆ ☆ ☆
3、阻塞队列 : put和take、offer和poll、drainTo
4、线程间的协调手段:lock、condition、wait、notify、notifyAll ☆ ☆ ☆
5、Lock-free: atomic、concurrentMap.putIfAbsent、CopyOnWriteArrayList ☆ ☆ ☆
6、关于锁使用的经验介绍
7、并发流程控制手段:CountDownlatch、Barrier
8、定时器: ScheduledExecutorService、大规模定时器TimerWheel
9、并发三大定律:Amdahl、Gustafson、Sun-Ni
10、神人和图书
11、业界发展情况: GPGPU、OpenCL

12、复习题

 

 

下载地址:

 2010-10-10版

http://files.cnblogs.com/jobs/Java%e5%b9%b6%e5%8f%91%e7%a8%8b%e5%ba%8f%e8%ae%be%e8%ae%a1%e6%95%99%e7%a8%8b-2010-08-10.pdf 

 

 

欢迎看了之后写反馈给我。

 

博客园的文章地址:

http://www.cnblogs.com/jobs/archive/2010/07/29/1788156.html

 

posted @ 2010-07-29 18:34 温少 阅读(2849) 评论(14) 编辑

2010年4月11日

佛教典故

  杭州佛教信徒众多,我新住进的小区也是重灾区,每天早上8点,就有人很大声的播放朗诵佛经,这影响了我的睡眠,但又无可奈何。忽然想起一个佛教的典故,调侃一下。

 

  圆悟克勤生于大宋年间,从小修习儒家经典,远近学子无人能比,一日偶见佛经,拿起来看了又看,虽是初见,却像是见到了自己原有的东西一般,因道:“恐怕我前生是和尚吧!”竟然就此剃度出家。克勤出家之后行脚四方,遍寻名师,终于拜在五祖法演门下。一日,有个大官陈某正好辞官要返回四川老家,特地前来参访五祖法演,问:“什么是祖师西来意?”法演说:“有两句诗,正好与此相似:频呼小玉原无事,只要檀郎认得声。”这两句诗里藏着个典故,说有一位美人名叫小艳,在闺房内知道她的情人檀郎来找她,小艳为了使檀郎知道她在闺房,又不好意思直接与檀郎说,只得借机叫丫环小玉做这做那,目的是利用呼唤小玉的声音,让檀郎知道她在闺房里。法演以此典故比喻禅法,意思是说什么本身并不是禅的目的,只是借说法的声音,要让人知道其言外之意——这类比喻亦是佛门惯技!但法演的用意,陈某却无法理解,反是旁边的克勤有悟。陈某走后,克勤问: “师父举小艳的诗,陈提刑懂了没有?”五祖法演说:“他只认得声。”克勤又问:“他既然认得声,因何不能悟道?”五祖法演见克勤有所触悟,便大喝道:“何为祖师西来意?莫是庭前柏树子?”克勤被法演这么一喝,顿时大彻大悟,手舞足蹈,走出室外,因写了一首悟道偈:“金鸭香销锦绣帏,笙歌丛里醉扶归。少年一段风流事,只许佳人独自知。”按照正统的说法,克勤此偈是以偷情比喻悟法,意思是说等到檀郎认得了佳人呼唤丫鬟的声音之后,就偷偷爬进房内上床,在绣着金鸭的锦帷中经过一番被翻红浪、缠绵缱绻,又于笙歌弦乐声中扶醉归去,而这一段偷情妙事,除了当事人之外,旁人都懵然不知。

 

  这是佛教里非常有名的典故,除了正统的说法之外,也有别的解读:老和尚们吃饱了没事做,胯下不免难受,所以天天想着“锦绣帏”、“风流事”,连写偈语也拿这个来说事,直把女子脐下数寸地,当作参佛悟道菩提根。

posted @ 2010-04-11 17:32 温少 阅读(453) 评论(0) 编辑

2009年10月16日

绝世名将

新纳忠元来冲杀,吉见正赖上前顶,山田有德发冷箭,内藤隆世竖盾牌,这边岛津义久少年气盛,那边笼手田安经老重持成,这边本田薰亲指挥若定,那边陶隆房也没乱了阵脚。名将对名将,村长战村长,一场影响历史、震动萨摩的绝世大战打下来,双方各死伤了几十人。此战之激烈,可想而知!
以上摘自《东海屠》第二二三章 萨摩一战惊九州。

每次看到有人把一丁点大的事情吹得天花乱坠,就想起一个词“绝世名将”!

posted @ 2009-10-16 12:29 温少 阅读(487) 评论(0) 编辑

2009年9月27日

Google云计算体验感受

Google云计算AppEngine Java版刚刚推出来的时候,我就申请了该服务。该服务的申请需要提供手机号码验证,GOOGLE很牛B,能够发送全球的手机短信。申请的帐号放了很久,前段时间学习OpenID,需要作一个范例,于是就在Google AppEngine上作,作的过程发现其不能使用线程,导致HttpClient组件无法工作,于是我修改了OpenID4Java的实现,全部使用URLConnection来实现。最终程序部署成功了,网址 http://cogito-study.appspot.com,欢迎大家测试使用。

我来说一下我对Google AppEngine Java版本的使用感受吧。
1、Google AppEngine Java版本,具备基本功能,但是由于缺乏一些重要的功能,例如线程,没有线程,很多库无法使用,例如我上面提到的HttpClient不能使用。Google提供一个类的白名单http://code.google.com/intl/zh-CN/appengine/docs/java/jrewhitelist.html,大多数需要使用的类都有,javax.xml.crypto不再其中,使得我要部署一个SAML2的实现时玩不转。
2、Google AppEngine提供了一个DataStore,使用JDO访问数据,其查询语言支持GQL。基本功能是具备的,但是也是存在很大的局限性,最多返回1000行数据,COUNT(*)也是最多返回1000行。这个限制使得很多应用要跑在其上,会很麻烦。
3、部署很简单,在Eclipse中使用Google提供的插件,输入帐号密码就可以部署了,太简单了。但我使用的过程中,经常出现某些时段无法部署的情况,通常遇到这种情况,多尝试几次或者过段时间再尝试就好了。
4、管理界面简洁方便,功能基本完备。包括性能监控、数据管理、日志、计费等都有。
总结
Google的AppEngine Java版本已经具备了基本功能,可以部署简单应用了,但是由于其功能不够完备,目前大多数应用要部署在其上,都会要做相当大的修改或者无法实现。

posted @ 2009-09-27 20:28 温少 阅读(961) 评论(0) 编辑

2009年9月24日

我在Google AppEngine上部署了一个Java应用(OpenID测试)

摘要: 我在Google AppEngine上部署了一个Java应用(OpenID测试)http://cogito-study.appspot.comGoogle Apps不支持线程,所用到的库openid4java需要创建线程(因为HttpClient),我修改了openid4java的实现,使得其支持Google App Engine。部署在Google App Engine上的应用可以应用任何Ope...阅读全文

posted @ 2009-09-24 16:43 温少 阅读(668) 评论(0) 编辑

2009年9月9日

杂谈单点登陆以及相关技术

摘要: 最近花了较多时间学习单点登陆以及相关的安全技术,做一个简单的总结,发表我的一些看法。抛砖引玉,希望各位朋友参与讨论。单点登陆,鸟语原文为Single Sign-On,缩写为SSO。别以为单点登陆是很时髦高深的技术,相反单点登陆是很古老的技术,例如1980年kerberos v4发布,一直发展至今,被Windows、Mac OS X、Linux等流行的操作系统所采用,是为应用最广泛的单点登陆技术。k...阅读全文

posted @ 2009-09-09 01:17 温少 阅读(3616) 评论(0) 编辑

2009年8月28日

喜闻我的文章进入“多核技术博客征文” top 30

摘要: 很久没去看博客园的留言,半夜睡不着,登上去,竟然有好消息。感谢您参加多核技术博客征文活动,您的作品“《多核程序设计技术》读后感 ”已入围top30排行榜,您可以获得英特尔乾唐彩文具套装一份,请尽快与我联系确认领奖事宜!详情查看:http://g.csdn.net/5089205------------我没有主动参加,是别人把我的文章拿去投稿的。细看排名,似乎是排名12。那是...阅读全文

posted @ 2009-08-28 02:22 温少 阅读(555) 评论(1) 编辑

2009年8月23日

重读罗素《西方哲学史》关于浪漫主义部分的介绍

摘要: 读尼采之后,一度厌恶罗素,并且拒绝再阅读罗素相关著作。最近经历了一些事情,使得我重新阅读罗素《西方哲学史》中关于浪漫主义的介绍。其中一些观点我深表赞同,摘抄如下:浪漫主义观点所以打动人心的理由,隐伏在人性和人类环境的极深处。出于自利,人类变成了群居性的,但是在本能上一直依然非常孤独;因此,需要有宗教和道德 来补充自利的力量。但是为将来的利益而割弃现在的满足,这个习惯让人烦腻,所以炽情一激发起来,社...阅读全文

posted @ 2009-08-23 14:24 温少 阅读(503) 评论(0) 编辑

2009年8月11日

随想

摘要: 昨晚跟一个朋友聊天,说有人给我的评价是:温少写的代码太复杂了。嗯,过去我给人的感觉的确应该会这样,过去我的确是偏爱复杂的实现方式。我对复杂度的把握是在08年初开始,那时候才比较好的体会“恰到好处,不多不少”,那时候也是刚经历过超大量的编码,对更大规模的程序设计有了更强的设计和实现能力,更强的能力也使得我对复杂度的更好认识。这是我最近几年最重要的能力提升!!!随便聊了一些业界...阅读全文

posted @ 2009-08-11 07:26 温少 阅读(695) 评论(0) 编辑