`
yinwufeng
  • 浏览: 277562 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论
文章列表

Java5中lock

    博客分类:
  • java
说明:Java多线程相关相关几篇文章转自http://lavasoft.blog.51cto.com/62575/27069/。为以后查阅方便,转载到此处。     在Java5中,专门提供了锁对象,利用锁可以方便的实现资源的封锁,用来控制对竞争资源并发访问的控制,这些内容主要集中在java.util.concurrent.locks 包下面,里面有三个重要的接口Condition、Lock、ReadWriteLock。 Condition 将 Object 监视器方法(wait、notify 和 notifyAll)分解成截然不同的对象,以便通过将这些对象与任意 Lock 实现组合使 ...
----对这两个概念的不明好久,终于找到一篇好文,拿来共享1. 栈(stack)与堆(heap)都是Java用来在Ram中存放数据的地方。与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆。2. 栈的优势是,存取速度比堆要快,仅次于直接位于CPU中的寄存器。但缺点是,存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。另外,栈数据可以共享,详见第3点。堆的优势是可以动态地分配内存大小,生存期也不必事先告诉编译器,Java的垃圾收集器会自动收走这些不再使用的数据。但缺点是,由于要在运行时动态分配内存,存取速度较慢。3. Java中的数据类型有两种。一种是基本类型(primitive ...
引用: http://1615926449.iteye.com/blog/1777124   昨天中午,发了一篇equals和==区别的博文,晚上再看时有几位大牛指出了其中的一些错误,很感谢他们的留言,一句简简单单的留言给了我对这些错误知识点改正的机会。或许这就是从事互联网行业所提倡的互帮互助的精神吧,因为有分享,有交流,互联网才会发展的如此迅猛。大牛提的一个观点很好,好的东西可以拿出来分享,错的东西却可能带给别人错误的理解,这一点我确实得向看了我写了一些bug博客的人道个歉。         针对大牛所指出的错误,晚上翻出了资料,重新温习了一遍。继续总结一下:            ...
转自:http://jiangzhengjun.iteye.com/blog/652623 数值表达式 1. 奇偶判断 不要使用 i % 2 == 1 来判断是否是奇数,因为i为负奇数时不成立,请使用 i % 2 != 0 来判断是否是奇数,或使用 高效式 (i & 1) != 0来判断。   2. 小数精确计算 Java代码  
PS:下面是性能测试的主要概念和计算公式,记录下: 一.系统吞度量要素:   一个系统的吞度量(承压能力)与request对CPU的消耗、外部接口、IO等等紧密关联。 单个reqeust 对CPU消耗越高,外部系统接口、IO影响速度越慢,系统吞吐能力越低,反之越高。 系统吞吐量几个重要参数:QPS(TPS)、并发数、响应时间         QPS(TPS):每秒钟request/事务 数量         并发数: 系统同时处理的request/事务数         响应时间:  一般取平均响应时间

PV/QPS/TPS

术语说明:QPS = req/sec = 请求数/秒 【QPS计算PV和机器的方式】 QPS统计方式 [一般使用 http_load 进行统计]QPS = 总请求数 / ( 进程总数 *   请求时间 )QPS: 单个进程每秒请求服务器的成功次数 单台服务器每天PV计算公式1:每天总PV = QPS * 3600 * 6公式2:每天总PV = QPS * 3600 * 8 服务器计算服务器数量 =   ceil( 每天总PV / 单台服务器每天总PV ) 【峰值QPS和机器计算公式】 原理:每天80%的访问集中在20%的时间里,这20%时间叫做峰值时间公式:( 总PV数 * 8 ...
前言在使用Memory Analyzer tool(MAT)分析内存泄漏(一)中,我介绍了内存泄漏的前因后果。在本文中,将介绍MAT如何根据heap dump分析泄漏根源。由于测试范例可能过于简单,很容易找出问题,但我期待借此举一反三。一开始不得不说说ClassLoader,本质上,它的工作就是把磁盘上的类文件读入内存,然后调用java.lang.ClassLoader.defineClass方法告诉系统把内存镜像处理成合法的字节码。Java提供了抽象类ClassLoader,所有用户自定义类装载器都实例化自ClassLoader的子类。system class loader在没有指定装载器的情 ...
  前言   在平时工作过程中,有时会遇到OutOfMemoryError,我们知道遇到Error一般表明程序存在着严重问题,可能是灾难性的。所以找出是什么原因造成OutOfMemoryError非常重要。现在向大家引荐Eclipse Memory Analyzer tool(MAT),来化解我们遇到的难题。如未说明,本文均使用Java 5.0 on Windows XP SP3环境。

JVM启动参数大全

    博客分类:
  • JVM
JVM启动参数大全  jdk1.4.2 JVM官方地址:http://java.sun.com/j2se/1.4.2/docs/guide/vm/index.html标准和非标注参数(for windows):http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/java.html 非stable参数:http://java.sun.com/javase/technologies/hotspot/vmoptions.jsp中文地址: http://blog.csdn.net/sfdev/archive/2008/01/23/206204 ...
  不管是YGC还是Full GC,GC过程中都会对导致程序运行中中断,正确的选择不同的GC策略,调整JVM、GC的参数,可以极大的减少由于GC工作,而导致的程序运行中断方面的问题,进而适当的提高Java程序的工作效率。但是调整GC是以个极为复杂的过程,由于各个程序具备不同的特点,如:web和GUI程序就有很大区别(Web可以适当的停顿,但GUI停顿是客户无法接受的),而且由于跑在各个机器上的配置不同(主要cup个数,内存不同),所以使用的GC种类也会不同(如何选择见GC种类及如何选择)。本文将注重介绍JVM、GC的一些重要参数的设置来提高系统的性能。     ...
专题类:  一、Android开发图书推荐:http://book.apkbus.com/  二、Android开发精选源码推荐:http://demo.apkbus.com/  三、Android 开发 UI设计http://www.apkbus.com/design/ 
Comet技术在项目中的使用   Comet是一种服务器端推的技术,所谓服务器端推也就是当有事件要通知给某个用户的时候,是由服务器端直接发送到用户的浏览器。服务器端Push目前一般有两种方式,HTTP streaming和Long polling。 ...
转自:http://www.ibm.com/developerworks/cn/web/wa-lo-comet/   “服务器推”技术的应用 请访问 Ajax 技术资源中心,这是有关 Ajax 编程模型信息的一站式中心,包括很多文档、教程、论坛、blog、wiki 和新闻。任何 Ajax 的新信息都能在这里找到。  
传统模式的 Web 系统以客户端发出请求、服务器端响应的方式工作。这种方式并不能满足很多现实应用的需求,譬如:监控系统:后台硬件热插拔、LED、温度、电压发生变化;即时通信系统:其它用户登录、发送信息;即时报价系统:后台数据库内容发生变化;这 些应用都需要服务器能实时地将更新的信息传送到客户端,而无须客户端发出请求。“服务器推”技术在现实应用中有一些解决方案,本文将这些解决方案分为两 类:一类需要在浏览器端安装插件,基于套接口传送信息,或是使用 RMI、CORBA 进行远程调用;而另一类则无须浏览器安装任何插件、基于 HTTP 长连接。
Java性能优化之垃圾回收(GC) 事先声明一下:虽说SUN公司已经被Oracle吞并了,但是出于习惯,同时也为了偷懒节省打字,以下仍然称之为SUN公司。JVM的内 存在Java虚拟机规范中(具体章节请看http://java.sun.com/docs/books/jvms/second_edition/html/Overview.doc.html#1732 ),提及了如下几种类型的内存空间:栈内存(Stack):每个线程私有的。堆 内存(Heap):所有线程公用的。方法区 (MethodArea):有点像以前常说的“进程代码段”,这里面存放了每个加载类的反射信息、类函 数的代码、 ...
Global site tag (gtag.js) - Google Analytics