`
zhmocean
  • 浏览: 201329 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

维度――Beijing Openparty2010年8月清雨榕香后记

阅读更多

“一个系统就是对世界的一种看法”

“系统是一个集合”

“如果在同一时刻两个系统处于状态空间的同一位置,那么空间是因为维度过低,即视图是不完全的”

“如果要恢复由于投影而丢失的信息,我们就必须从其他渠道获得系统的信息,也就是关于消失的其他维度的信息。”

 

       ――《系统化思维导论》 . 温伯格

 

正所谓“饮如长鲸吸百川,衔杯乐圣称世贤”,我们的 Openparty 参加人数在大家的努力下又创出了新高,也吸引了各方面的社区和团队,给大家带来了更多的新鲜事,这点我们都快赶上传说中的青旅了,呵呵。

伴随逐渐扩大的影响力,我们的组织者一起合作开发的新网站也开始正式运行,报名、投票、签到,在此也代表大家对他们的辛勤汗水表示敬意。

 

从这次活动开始, Google 中国正式成为 Openparty 的特约赞助商,这也为我们的活动带来了更强的后盾和机会,所以这次的活动纪念品少不了 Google 元素,当然也有精彩的技术话题。

这次参加活动的美女也是有史以来井喷的一次,害得我举着镜头都不知道先拍哪个好,所以一会看活动的照片,一定要选择一个 GF 或者 LP 不在你身后的时间,否则

有美女,当然也会有我们的乐队,小胖童鞋如约为大家带来了一支优美的撒斯克 错了是萨克斯名曲, yeah ,貌似就差红酒了


       由于新网站的逐渐稳定,我能很方便的预习每次的 topic ,并为自己感兴趣的投上一票并做准备,所以,我早早的就盯紧了“多核时代的高性能 Java 开发”和“南极禅院”,所以

拍完照片,我就一头扎进了他们的话题中。

       第一个是 James 带来的“多核时代的高性能 Java 开发”,其实这对于很多人来说可能是一个“敏感”话题,因为性能一直是很多人诟病 Java 的利器, Java 就一定是低效的代名词?那听了这个话题我们就有答案了,而且答案很简单。

       Java 是从更上层(相对于底层的语言)的维度去解决问题,所以为了保证下层的稳定和适应性,性能的考虑变得相对次要;另外,由此带来的便捷也很容易就让人们忽略对性能的优化和深究意识,所以说,到目前为之,在纯粹的执行效率方面, Java 确实慢,但不是人们想到和看到的这么慢,其中一个重要的原因就是,我们的 Java 程序还停留在单核时代,多核带来的好处并没有帮助(甚至负面影响)到程序的性能,所以, James 此次来是告诉我们,事情远没有人们想象的那么糟。

       多核意味着并行,并行则意味着资源共享,那么关于锁、临界、线程 是我们不得不考虑的问题,而这些抽象又晦涩的概念,如何让我们准确定位呢?工欲善其事必先利其器,那首先,是一些工具的展示。

       James 为我们展示了三个工具: Java Lock Monitor JLM )、 Multi-core SDK MSDK )和 AIX Performance Tools ,前两个是运行在 jvm 下的,后者则是 native 的程序。

       Java Lock Monitor JLM )用于分析和展示 Java 程序中锁的使用情况,以方便我们优化线程锁的使用,充分利用 CPU 资源。

       Multi-core SDK MSDK )是可视化(图形化)的 Java 线程资源情况分析工具,利用这个工具我们可以很直观的看到进程内各种资源的使用时间、依赖关系。

       AIX Performance Tools 则是一个强大的 binary 分析工具,由于脱离了 jvm 的环境,它的分析能力更加通用和强大。

       有了好的工具,我们下一步就要用它们优化我们的程序,那么基于这些工具,最常见的优化无非就是对锁和线程的调度和合理安排,具体如下:

1、  使用实例锁而非类锁。  

比如:

       public synchronized void foo1(int k){

              String key = Integer.toString(k);

              String value = key+”value”;

              if(null == key){

                     return;

              }else{

                     maph.put(key, value);

              {

}

       此时加的是类锁,我们只要改成

       public void foo1(int k){

              String key = Integer.toString(k);

              String value = key+”value”;

              if(null == key){

                     return;

              }else{

                     synchronized (this){

                            maph.put(key, value);

}

              }

}

       就可以把时间损耗降低 25%

2、  使用细粒度锁。即,对共享资源加锁而非方法(实质是对象锁)  

比如:

       public synchronized void addUser1(String u){

              users.add(u);

}

 

       public synchronized void addQuery1(String q){

              queries.add(q);

}

       实质是加了类锁,导致线程等待时间产生无谓的浪费,那么我们可以改成

       public void addUser2(String u){

synchronized (users)

                     users.add(u);

}

 

       public void addQuery2(String q){

              synchronized (queries){

queries.add(q);

                     }

}

       经过这样优化,时间消耗降低了 67%

3、  锁定元素而非集合。  

比如:

       public synchronized void put1(int index, String k){

              share[index] = k;

}

       可以改为

       public void put1(int index, String k){

synchronized(locks[index%N_LOCKS]){

                     share[index] = k;

}

}

       时间降低 66% 的损耗

4、  使用原子 Atomic 系列类型进行无锁编程。  

具体可见 AtomicLongArray 的用法(此用法在 JDK1.5+ 里可用)

       讲了这么多,其实问题的关键点就在共享资源的调度和使用,其中一个原则就是,共享资源越少越好,线程间交互越少,效能越高。这也是在提醒我们程序员,好程序不单单决定于语言。

 

       最后的话题“南极禅院”,廖海仁兄(名字为三个字)为大家带来了另一个与众不同的视角,也让我们有机会用另外的维度去看这个世界。

       作为一个挑战生存极限的极端世界,我们的南极科考站却是一个对人性历练的地方,这里不但有肥肥的海豹,可爱的企鹅,也有我们人类在此静心的思考。

       廖兄为大家展示了南极的各种奇异的景观、动物、植物,照片里我们看不到一点世俗的痕迹,就连这些在世俗中浸泡了几十年的人来说,那里也是一个禅院,原始、清净、共产、平等,用他的话说,是一个原始社会和共产社会的结合体。

       他对比了南极社会(小团体其实代表了一个社会)和现代社会的极大的不同,也给大家带来了一些南极社会学的思考:

1、  永远不要抱怨,不要当一个愤世嫉俗者。我们不是旁观者。  

2、  不要企图去改变不可改变的东西。  

3、  服务意识、合作精神与专业技能一样重要。大社会通常会掩盖这一点。  

4、  选择团队成员要非常谨慎。  

5、  快乐的秘诀是自己。  

6、  谁才是最重要的人?身边的人。  

另外他也跟大家分享了一些心理的感受,包括如何调节自己和同伴的关系、读书贵在精而非多、读书要慢慢读用心读、不要接收太多的信息以免被掩盖的真正的思考。

总之,从他的身上我们可以看到人性的另一个角度,也能感受到他口中“为了搞清人为什么活着”这句话的分量。

最后让我来解释一下本文一开始引用的几句话,我们接触的复杂事物都能叫做一个系统(软件、经济、生活 ),系统是多维的,但认知是有限的,就像我们每个人,常常因为没有足够的维度而感到困扰。我们只有从足够(相对足够)的维度观察,才能完整的认识身边的世界,每当接触到一个新的维度,就加深了一次对世界的认知能力,而 Openparty 恰恰为我们提供了一个多维的平台,我们可以学习别人的维度,分享自己的维度,最后成为一个“超级观察者”(《系统化思维导论》 . 温伯格)。

活动照片已经上传,有梯子的童鞋可以移驾: http://www.flickr.com/photos/41954905@N06/sets/72157624883621674/ 如无法看到,可等我们的组织者整理完毕放到一个合适的位置,敬请关注。如果你需要不带水印的高清图像或者不想出现在相册中,请及时与我联系,谢谢。

  • 大小: 19.6 KB
  • 大小: 23.1 KB
  • 大小: 29.8 KB
0
2
分享到:
评论

相关推荐

    清雨剑挑码助手2015

    2015年2月8日发布的版本(build 20150208)是该软件的一个重要更新,提供了更稳定的功能和优化的用户体验。 挑码助手这一标签揭示了该软件的核心功能,即帮助用户快速、准确地处理各种编码问题。在IT行业中,编码与...

    清雨博客(prain)-轻博客PHP开源系统 v1.2.8.zip

    清雨博客的设计理念可能就是提供这样一种轻量级的发布体验。 3. **源码源代码**:此压缩包包含源代码,意味着用户可以深入了解系统的工作原理,进行二次开发,添加自定义功能,或者根据需求进行个性化调整。 4. **...

    清雨剑挑码助手有什么用.docx

    清雨剑挑码助手有什么用.docx

    清风剑挑码助手2018版本

    清雨剑挑码助手是一款功能最多、最全、最详细!集〖挑码〗、〖统计器〗、〖分析预测〗、〖开奖直播〗、〖备忘录〗、〖开奖记录〗等众多功能于一身。本助手能够代替彩民在传统纸质上进行选码、杀码、统计等繁琐的工作...

    逸雨清风 安卓资料导出备份

    该软件支持导入导出手机通讯录与短信,可以通过导出进行备份,还可以直接阅读导出信息。导出文件存储在手机和SD卡里双重保险。

    2011年小丽君统计器-简洁版(推荐)

    《2011年小丽君统计器-简洁版(推荐)》是一款专为数据分析和统计而设计的软件,尤其适合需要快速处理大量数据的用户。这款2011年的版本是其系列中的一个更新版,它以简洁的界面和高效的功能著称,并且承诺提供持续...

    2020中国彩民图鉴.rar

    8. 未来展望:基于2020年的数据,报告会给出对未来中国彩票市场发展的预测,包括行业发展趋势、挑战和机遇。 通过这份《2020中国彩民图鉴》,我们可以了解到中国彩票市场在过去一年中的全貌,同时也能为政策制定者...

    清风时间同步助手 v1.0

    清风时间同步助手通过... 2、部分Windows XP的系统日期被篡改为2004年或更早以前而导致的无法进入系统情况。 3、采用计时授权的收费软件失效,QQ无法登陆,论坛无法发帖,等各类问题。4、秒杀商品每次都差几秒误差。

    转化后进生教育叙事.doc

    江清雨存在不做作业、课堂行为问题以及人际关系困扰等问题,班主任通过多次谈话尝试引导他认识并改正错误,但初期效果并不明显。班主任并未放弃,而是深入分析江清雨的行为背后的原因,发现他对父亲的怨恨可能是其...

    易语言心雨在线升级系统3.0版-易语言

    易语言是一种面向对象的、以中文编程为特色的编程语言,由王永红教授于1998年创建。它的设计目标是让计算机编程变得简单易懂,通过使用汉字作为程序命令,使得编程过程对中文使用者更为友好。易语言支持Windows平台...

    清风论坛 build 0828 正式完整版

    本论坛的功能与腾讯的差不多。 管理员:kknd 密码:mz520 论坛运行条件: 1.win2k + IIS 4.0 2.组件注册 3.虚拟目录 对于组件的注册我已经做好了安装包:FileUpload目录下的FileUpload.MSI文件,双击便

    安炫手机ROOT助手

    1.本软件是清雨和安炫论坛自研的代码发的软件。 2.安炫ROOT助手在手,ROOT您有!支持机型最多、成功率最高的一键ROOT工具 3.获取Root权限连接好手机和电脑点击软件后进入界面后,点击我已连接好手机在点一键Root等待...

    mxy2.54数据更新至2019050

    带2019清雨剑挑码软件,和亲自验证了3期公式,47起验证的,47期之前都是软件排列效果不值参考。 慎!慎!慎!依此数据作菠菜后果自负

    建模课件(南昌大学)

    首先,我们看到“MCM Schedule.doc”和“日程安排 罗清雨老师.doc”,这两个文件很可能是关于数学建模竞赛(MCM,Mathematical Contest in Modeling)的日程安排,由罗清雨老师编制。MCM是全球性的数学建模竞赛,...

    IOS天气预报(美化版)(iPhone源代码)

    来源:blog.csdn.netLicence:Apache 2.0平台:iOS设备:iPhone作者:清雨小竹  返回的json数据,根据不同的天气数据显示不同的天气图片。 小编注:感谢作者@清雨小竹 分享代码于Code4App。 [优才 · Code4App]...

    局域网内CS模式消息互发(iPhone源代码)

    来源:Licence:Zlib平台:iOS设备:iPhone / iPad作者:清雨小竹  局域网内C/S模式的服务器和客户端相互发送消息。代码包内包含客户端(iOS)demo以及server端(Mac)demo。 小编注:感谢作者@清雨小竹 发布...

    咏荷上雨阅读答案.docx

    通过虚实结合的手法,词人在上阕描绘了梦中的西湖烟雨,下阕则呈现了现实中的池荷清雨。这种手法既拓宽了诗词的表现空间,也增强了意境的深度。梦中的西湖美景是公认的,而诗人将庭院中的雨荷与之相比,暗示了雨荷...

    新五四制人教统编版一年级上册语文 8课 雨点儿 优质教学课件.ppt

    《雨点儿》是新五四制人教统编版一年级上册语文第八课的教学内容,这是一份精心制作的精品教学课件,旨在帮助学生更好地理解和学习课文。课件设计注重激发学生的兴趣,通过图文并茂的方式,使抽象的语文知识变得生动...

    説甲骨文的“■”和“■”字.pdf

    通过对比不同形态的甲骨文字符,学者杜清雨认为“■”可能是“冡”字的早期形式,而“■”则可能是“髡”字的初文。这种基于字形和辞例的分析方法,类似于数据库中的数据挖掘和模式识别技术,旨在找出隐藏在大量数据...

    简单易用的Google地图导航(iPhone源代码)

    来源:Licence:Zlib作者:清雨小竹  通过输入起始点位置的GPS和终点位置的GPS,能够快速地在WebView中显示的谷歌地图上上画出轨迹路线(自驾、徒步、公交等)。并可获取到地理信息。

Global site tag (gtag.js) - Google Analytics