- 浏览: 3017630 次
- 性别:
- 来自: 海外
最新评论
-
mldxs:
虽然很多还是看不懂,写的很好!
虚拟机随谈(一):解释器,树遍历解释器,基于栈与基于寄存器,大杂烩 -
HanyuKing:
Java的多维数组 -
funnyone:
Java 8的default method与method resolution -
ljs_nogard:
Xamarin workbook - .Net Core 中不 ...
LINQ的恶搞…… -
txm119161336:
allocatestlye1 顺序为 // Fields o ...
最近做的两次Java/JVM分享的概要
文章列表
今天开始Sun的老blog真的搬迁了,从blogs.sun.com迁移到blogs.oracle.com。结果这些迁移了的blog里的老帖像洪水般一下就把我的reader冲爆了。
不过也好,有些老帖过了一段时间重新读也会有新体会。例如这篇,Why won't JRockit find my classes
原帖里提到这样一种情况。假如在一个路径“foo”里有下面的Foo类对应的Foo.class文件:
Mattis Castergren 写道public class Foo {
public Foo () {
System.out.println("Fo ...
收集一些uname的输出对比用。
如果有跑Solaris的人路过看到这帖的话,求uname -m、uname -a和isainfo的输出,特别是在SPARC V9上的,多谢了
Ubuntu
$ uname -m
x86_64
$ uname -a
Linux fx-laptop 2.6.35-28-generic #50-Ubuntu SMP Fri Mar 18 18:42:20 UTC 2011 x86_64 GNU/Linux
$ uname -m
i686
$ uname -a
Linux vbox 2.6.35-24-generic #42-Ubuntu SMP Th ...
先前只在几个测试用的环境里装了JDK 6 update 25,没在自己的开发机上装。刚才正好试一个东西的时候装上了,就顺手把跑Eclipse的JVM设到了JDK6u25上。
-vm
D:/sdk/jdk1.6.0_25/bin/javaw.exe
-startup
plugins/org.eclipse.equinox.launcher_1.0.201.R35x_v200907 ...
Oracle几天前发布的JDK 6 update 25里添加的一个新功能非常有趣,可以按照线程来跟踪(GC堆)内存的分配量。这个功能在VM核心、解释器、C1编译器、C2编译器以及GC中都有代码支持,并且通过JMX API暴露出来。
不过新加的这功能不是加在java.开头的包里,而是加在com.sun.management.ThreadMXBean这个接口上,要用的话还得cast一下。
当然,这么底层的功能不可能没有代价。添加这个功能后,在GC堆上分配空间的slow-path会比以前稍微慢一些。但希望对整体性能的影响并不大吧。
Fast-path是在TLAB上分配空间的,而TLAB的分配数据是在 ...
如题。先前都没仔细留意,今天在看一个crash log的时候才发现这点,记录一下。
本来以为这个是在6 update 25才开始开启的…
注意:32位HotSpot VM是不支持UseCompressedOops参数的,只有64位HotSpot VM才支持。64位HotSpot VM的版本字符串样子如下:
Java HotSpot(TM) 64-Bit Server VM (build 19.0-b09, mixed mode)
Sun的HotSpot VM从JDK5开始会根据运行环境来自动设定VM的一些参数(ergonomics)。其中大家最熟悉的可能是它会自动选择client与serve ...
可能许多人都读到过资料,听说过在Sun的HotSpot VM里,client VM与server VM是共用一套解释器的。那么“照理说”无论是在client还是server模式,纯解释执行的性能应该是一样的。
引用
(图片来源:The Java HotSpot Performance Engine Architecture)
是这样的么?解释器虽然是同一个,但它却可以根据启动参数的不同而变得不同。
而且有很多因素会影响测试时间的小程序(microbenchmark)。解释器自身的性能是一点,VM里其它部分的情况又是一点,例如说GC。
昨天有朋友提到这样的问题:
引用你好,前几天看了你的JVM ...
好久没拿过啥奖啊什么的了,突然拿到个奖杯形状的东西也挺开心的。
今天部门里开kick off会。获得所谓“黄金码农”奖:
奖杯上刻着的是前两届获奖的同学的花名,史昂和无相。
据说下一届的奖杯上会有我的花名在上面…anyway那好像跟我关系不大了 >_<
其实挺惭愧的。这奖背后的代码实际上也是中间件团队强大的九任教我写的,我就打了个酱油。
或许还有很多优秀代码没被提交或者发现。希望以后能看到更有趣的干货 ^_^
最近忙得只要躺下可以立即睡着。诶。只能发水文了。
过年的时候订的几张CD终于到手了。忍不住一晒。直接上图
僕らのLIVE 君とのLIFE
Snow halation
Birth
不知道为啥最近我对アイドル主题的东西的抵抗力变得非常低下
刚收到一个问题,
引用之前一直认为scala的object 中执行语句相当于在java的static构造块中,今天看到:
http://stackoverflow.com/questions/2347107/what-is-scala-equivalent-of-javas-static-block
请帮忙分析一下,放在scala object 中的执行语句,最终转换为java时是如何的?
比如
object A {
println("hello")
}
里面的 println("hello") 在java中是怎么表达的呢?
有这么具体的代 ...
在Oracle JDK中,一个Java线程可能有好几个ID。它们都是什么,之间有对应关系么?
(通过VisualVM的SA Plugin来观察一个Java线程,可以看到两个高亮的行都有ID)
更详细的例子和代码发在Github上了,有兴趣的同学请移步:https://gist.github.com/843622#file_readme.md
暂时就放个gist链接出来:>> https://gist.github.com/827140 <<
多数参数的意义在这里可以查到:globals.hpp
Windows测试环境:
OS: Windows XP Build 2600 Service Pack 3
CPU:total 2 (2 cores per cpu, 1 threads per core) family 6 model 23 stepping 10, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1
Memory: 4k page, ...
刚才给在做的项目里加了些便捷功能,把做法记下来。
我们在Java应用里嵌入了Groovy脚本。为了方便,业务里经常用的一些类可以默认import进来,让大家少写点重复代码。幸好,这种功能用Groovy来做毫不费力。
import groovy.lang.GroovyClassLoader;
import java.security.CodeSource;
import org.codehaus.groovy.ast.ClassHelper;
import org.codehaus.groovy.ast.ModuleNode;
import org.codehaus.groovy ...
超·蛋·疼
同事的工程里有*.dat文件要打包到最后的JAR包里,但POM文件里resources的配置没放*.dat文件通过。于是加了一条include放过它,但那里是配置在<filtering>true</filtering>下面的。
结果杯具了,那些*.dat文件在被Maven打包的时候被“转码”了,其中的一些数据就变成了ASCII问号(0x3F)。
http://maven.apache.org/plugins/maven-resources-plugin/examples/filter.html
按照这个页面,要把resources配成两段,不把*.dat ...
上周末在JavaEye问答频道看到这样一个问题:JVM源码编译
liueye 写道请问有谁在Linux环境编译过SUN JVM,请提供编译手顺,谢谢
于是回答一下…
背景知识
这年头想从JRL源码来构建JDK的应该不多了吧。毕竟Sun(-> Oracle)的JDK开源源码的主流早已是OpenJDK。
如果要尝试构建基于Sun源码的JDK,强烈建议优先考虑OpenJDK。选择它有诸多好处:
1、它的核心代码与同时期Sun(-> Oracle)的产品版基本上是一样的,血统纯正,不用担心性能问题,也基本上没什么兼容性问题;
(代码上最主要的差异是在原本JDK依赖的第三方库上,包括加密 ...
前两天一段调用HTTP服务的脚本出了问题,仔细一看,发现是提供的HTTP服务在响应头里写了:
HTTP/1.1 200 OK
Server: xxxxxxxxxx
Content-Type: text/html; charset=utf-8
Connection: close
Content-Length:2014
响应的头中声明了Content-Type,其中指定了charset=utf-8;但实际上响应中的文本却是GBK编码的。这使得原本我写的请求脚本出了问题。
依赖的Apache HttpClient如下:
pom.xml:
<dependency>
<g ...