`
文章列表
逻辑地址到线性物理地址的映射有两种方式。 一种是使用段地址+段内偏移量做逻辑地址。段的描述符保存在GDT(global descriptor table)或者LDT(local descriptor table)中。每个线程有不同的逻辑地址(不同的段地址),再映射到不同的线性物理地址 另一种是使用paging机制。每个线程有相同的逻辑地址,由paging机制将逻辑地址映射到线性物理地址。 Linux倾向于使用paging机制,因为不同机器架构的分段机制不同。 kernel不使用LDT,尽管有一个系统调用允许线程创建自己的LDT。在执行segment-oriented的windows应用时,这个调 ...
读书摘抄 原文在http://www.omg.org/library/iiop4.html ORB CORBA specifies the Object Request Broker (ORB) that allows applications to communicate with one another no matter where they reside on a network. IIOP is part of CORBA A common misconception about IIOP is that it is a "separate" specific ...
这个技术ppt做的很精彩,恰当的用了类比的方法来说明技术问题,very funny:) http://www.slideshare.net/mattetti/couchdb-perform-like-a-pr0n-star?type=presentation
A Note on Distributed Computing 读了英文paper,选择自认为重要的部分是翻译出来,有兴趣的同学们还是要读原文。 分布式计算的读书笔记 2. 统一对象 在分布式面向对象的计算领域,有一种愿景,希望从程序员的角度来看,在同一地 ...
look for someone who is brilliant, but at the same time, humble. Look for someone who naturally uses the word “yes” more than “no”. Look for someone who believes in the potential of the human spirit, and instills confidence in his reports. Look for someone with true courage, who would be a good man i ...
一道面试题,多线程, 一个线程增加变量,另一个打印出变量值。我的做法: public class MultiThreadsTest { int size = 1000; private int i= 0; boolean printlable = false; Object lock = new Object(); Thread addI = new Thread(new Runnable(){ public void run(){ ...
面对远程调用和本地调用之间的性能差距问题,一个可行的思路是使用工具来分析对象之间的交互模式。通过分析可以把经常交互的对象部署在相同的地址空间,把相对来说交互较少的对象部署在其他地方。由于从外部看来系统中所有对象(本地,远程)之间的交互使用的是相同的机制,所以这种调整是可行的。当然,首先要保证应用是正确的,其次才是调整性能。 The second prong of the reply is to admit to the need for tools that will allow one to see what the pattern of communication is between t ...
The hard problems in distributed computing are not the problems of how to get things on and off the wire. The hard problems in distributed computing concern dealing with partial failure and the lack of a central resource manager. The hard problems in distributed computing concern insuring adequate p ...
在Linux中用ps命令看到的每个进程使用的内存是该进程所用到的内存之和,是假定当系统只有该进程运行时,该进程使用的内存。 之所以用ps看的内存报告是“错误的”是因为Linux系统对共享库的处理。系统只装载一份共享库代码,所有使用该库的进程都可以在自己的地址空间中访问到该共享库代码。 比如ps命令报告每个Apache进程可能都用了10M内存,而实际上每个进程的边际代价为1M内存,其余9M是在所有的Apache进程之间共享的。 http://virtualthreads.blogspot.com/2006/02/understanding-memory-usage-on-linux.html ...
Joeq包含一个特殊的“镜像”包,每当一个被装载时,类装载器会在“镜像”包中查找同名的类。如果找到,那么就装载镜像类,将镜像类的内容附加到原类中,用镜像类的方法和字段代替原类中同名的方法和字段。这种机制允许我们在不改变原实现的情况下改变类的实现。
转载自BlueDavy的技术Blog  http://www.blogjava.net/BlueDavy/archive/2009/03/11/259230.html Garbage First介绍 本文摘自《构建高性能的大型分布式Java应用》一书,Garbage First简称G1,它的目标是要做到尽量减少GC所导致的应用暂停的时间,让应用达到准实时的效果,同时保持JVM堆空间的利用率,将作为CMS的替代者在JDK 7中闪亮登场,其最大的特色在于允许指定在某个时间段内GC所导致的应用暂停的时间最大为多少,例如在100秒内最多允许GC导致的应用暂停时间为1秒,这个特性对于准实时响应的系统 ...
QCon是为团队领导者、架构师、项目经理和高级软件开发人员量身打造的企业软件开发大会,其所覆盖的主题内容与InfoQ相同,关注架构与设计、真实案例分析等等。从2007年3月到现在,QCon已经在英国伦敦、美国旧金山等举办了4次会议,得到业界的广泛好评。2009年,这一高品质的技术大会将来到亚洲,在中国北京和日本东京举行。 QCon北京站的主题和演讲人已经基本确定,讲师也已经确认了近85%,包括:     * Rod Johnson——Spring创始人,Java和Java EE开发领域世界级权威     * Martin Fowler——《分析模式》和《重构》等书的作者,敏捷宣言缔造者,Th ...
Liferay中的portlet是可以实例化的,portlet的instance有instance id,其组成形式是: portletId + "_INSTANCE_" + instanceId 在server端,可以用portlet.getId()和portlet.getInstanceId()分别得到portletId 和instanceId,再拼出instance id。 在客户端,调用portletDisplay.getId(); 如果该portlet是可实例化的,那么会返回instance id, 如果是不可实例话的,那么会返回portlet id。 portle ...
Liferay支持open social,下面的代码是MBMessageLocalServiceImpl中的,将一篇blog加入了social 活动中。 // Social BlogsEntry entry = blogsEntryPersistence.findByPrimaryKey(classPK); JSONObject extraData = new JSONObject(); JSONUtil.put(extraData, "messageId", message.getMessageId()); socialA ...
  太长的方法是一种坏味道,重构时要尽量拆分大方法为小方法。昨天学习了JVM的内存管理,发现将大方法切分为小方法还可以提高内存的释放速度,这与JVM的内存管理有关。在方法调用时,JVM会创建一个stack frame,该方法的参 ...
Global site tag (gtag.js) - Google Analytics