摘要:
1.Java内存知识整理Java内存模型:堆、栈、方法区、PC计数器、寄存器2.程序运行时,JVM将“运行时逻辑(即线程)”存储在栈,将运行时数据存储在堆空间。程序运行时,每个程序都有自己的逻辑,但可能多个程序对同一个数据进行操作。就是说“运行时逻辑”应该是java线程私有的;“运行时数据”应该是所有java线程共享的。3.JVM栈主要存储3类数据:本地变量表(基本类型,对象引用)、操作栈、方法出入口。堆:堆空间和方法区。堆空间:保存各种JAVA对象,比如数组,new出的对象。堆空间的分代管理:新生代(Eden+Survivor)和老生代。方法区(又叫permanent space/永久存储区 阅读全文
摘要:
1xx(临时响应)表示临时响应并需要请求者继续执行操作的状态代码。代码 说明100 (继续) 请求者应当继续提出请求。 服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。101 (切换协议) 请求者已要求服务器切换协议,服务器已确认并准备切换。2xx (成功)表示成功处理了请求的状态代码。代码 说明200 (成功) 服务器已成功处理了请求。 通常,这表示服务器提供了请求的网页。201 (已创建) 请求成功并且服务器创建了新的资源。202 (已接受) 服务器已接受请求,但尚未处理。203 (非授权信息) 服务器已成功处理了请求,但返回的信息可能来自另一来源。204 (无内容) 服务器成 阅读全文
摘要:
1性能测试简介 性能测试的过程就是找到系统瓶颈的过程。 性能测试(包括分析和调优)的过程就是在操作系统的各个子系统之间取得平衡的过程。 操作系统的各个子系统包括: CPU Memory IO Network 他们之间高度依赖,互相影响。比如: 1. 频繁的磁盘读写会增加对内存的使用 2. 大量的网络吞吐,一定意味着非常可观的CPU利用率 可用内存的减少可能增加大量的swapping,从而使系统负载上升甚至崩溃 2 应用程序类型 性能测试之前,你首先需要判断你的应用程序是属于那种类型的,这可以帮助你判断哪个子系统可能会成为瓶颈。 通常可分为如下两种: CPU bou... 阅读全文
摘要:
Terracotta中的Auto Lock对于没有使用Synchronized关键字的方法,即使在tc-config.xml中对该方法进行auto-lock,terracotta也不会认为该同步方法有效,必须显示声明为auto-synchronize= true。如果该方法已经使用了Synchronized关键字,那么只需要在tc-config.xml中显示声明为auto-lock的就可以。锁的级别:1、写锁write:2、同步写锁synchronous-write 3、读锁read 4、并发锁 concurrent 阅读全文
摘要:
load average:平均负载,os级参数,被定义为在特定时间间隔内运行队列中的平均进程数。如果一个进程满足以下条件则其就会位于运行队列中: - 它没有在等待I/O操作的结果 - 它没有主动进入等待状态(也就是没有调用’wait’) - 没有被停止(例如:等待终止)查看命令:$ uptime 11:12:26 up 3:44, 4 users, load average: 0.38, 0.31, 0.19上面的输出,load average后面分别是1分钟、5分钟、15分钟的负载情况。数据是每隔5秒钟检查一次活跃的进程数,然后根据这个数值算出来的。如果这个数除以CPU的数... 阅读全文
摘要:
Note: Before this doc, I assume you have installed the terracotta with Ehcache already, if not, you can reference the guideline TERRACOTTA CONFIGURATION GUIDELINE doc.1. Getting start from its sampleWe can find that there are two samples in the terracotta installation directory, colorcache and hiber 阅读全文
摘要:
Shell Script编写注意事项:1.命令的执行是从上而下,从左至右地分析与执行。2.命令执行中,命令与参数间的多个空白都会被忽略掉。3.空白行也被将忽略掉,并且【tab】按键所得的空白同样视为空格键。4.如果读取到一个Enter符号【CR】,就尝试开始执行该行(或该串)命令;5.如果一行的命令太多,则可以使用“\[Enter]”来扩展至下一行;6.“#”任何加载#后面的数据全部被视为批注文字而被忽略。bin bash和 bin sh的区别在shell脚本的开头往往有一句话来定义使用哪种sh解释器来解释脚本。两种声明的区别:1.#!/bin/bash 声明当前script使用的shell名 阅读全文
摘要:
Perl学习笔记:http://www.cbi.pku.edu.cn/chinese/documents/perl/index.htmbuild脚本:http://grandboy.iteye.com/blog/432104。Classborder:http://www.360doc.com/content/10/0808/20/495229_44602266.shtmlhttp://www.360doc.com/content/10/0808/20/495229_44602924.shtml 阅读全文
摘要:
Java NIO非堵塞技术采用的是Reactor模式,或者说是Observer模式,为我们检查I/O端口。如果有内容进来,会自动通知我们,这样,我们就不必开多个线程四等。从外界看,实现了流畅的I/O读写,不堵塞了。NIO中的主要类之一Selector,这个类类似一个观察者,只要我们把要探知的SocketChannel告诉Selector,我们接着做别的事儿,当有事件发生时,他会通知我们,传回一组SelectionKey,我们读取这些Key,就会获得我们刚刚注册过的socketchannel,然后,我们从这个Channel中读取数据。Selector内部原理实际是在做一个对所有注册的Channe 阅读全文
摘要:
原文链接:http://tech.puredanger.com/2009/02/11/linkedblockingqueue-garbagecollection/相关链接:http://www.oracle.com/technetwork/java/javase/6u19-141078.htmlThere was an interesting exchange today on the concurrency-interest mailing list about LinkedBlockingQueue, one of the most important and commonly used 阅读全文