IcedTea 7 1.11版发布了

什么是IcedTea?
当SUN将全部Java源代码——现在称为OpenJDK——在2007年5月9日发布时,它还面临一些问题。 最主要的问题是有些代码的“缺失”。多年来,Sun得到的Java类库来自于多种渠道,因此,这些类库对应的许可种类也不一样,其中有些代码不允许开源。 为了能够使用这些受限代码,Sun提供了一些“二进制插件”,这些二进制插件被拷到构建(build)后的结果中。 这种做法的问题正如Fedora规则所讲的“别使用那些不开源的东西”那样,因为我们很难对看不见的代码保持信心。
GNU Classpath团队和一些RedHat开发者一起创造了IcedTea 项目,目的就是要用开源实现去替换OpenJDK中那些非开源部分。

提供openjdk 7 milestone 4编译的IcedTea 7 1.11版发布了.
主要的改进是
1, 支持 OpenJDK7 b66 (Milestone 4).
2, netx组件的一些bug fix.
3, zero装配器被正式支持.
4, 一些参数被取消.如下
* –with-openjdk
* –with-icedtea
* –with-openjdk-home
* –with-icedtea-home
* –with-gcj-jdk
5, 使用systemtap 0.99+ 提供java方法跟踪.
6, fix一些安全问题.

2009/08/07 | Posted in JVM

2009 JVM语言峰会

2009 jvm语言峰会logo
今年的JVM语言峰会将于9月16日-18日在加州圣塔克莱拉大学举行.
上一届峰会共有75名语言和VM开发者参加, 但最后只有1/3的人出席.

峰会跟往年一样, 有历时3天的主题演讲和交流沙龙, 也有JVM未来畅想之类的活动.
点击 这里 可以看大会议程.

从议程上看, 本届的亮点可能会在动态语言的支持上. 其中我发现一个名字很有趣的项目, 叫达芬奇, 它的目标是让JVM可以运行更多的其他语言, 主要是动态语言.
项目链接 the Da Vinci Machine Project

在主题演讲中, 我个人比较感兴趣的是, Clojure, Scala, JVM Performance 这三个主题.(最近Scala在国内比较热)
今天杭州的天气不错, 希望这届峰会可以办得风风火火.

2009/08/07 | Posted in JVM

用javac编译生成不同版本的源码和目标class

合理使用javac的source和target选项, 可以使程序的兼容性得到提升.比如, 你写了某个方法, 命名为assert, 该source能通过1.3编译, 而后, 1.4将assert加入到了关键字列表.
此时, 你再用1.4编译时, 就会出错了.

同样地, 1.5之前因为没有引入enum关键字, 如果你的代码中使用了, 那在1.5之后编译就会错误.
解决这个问题的方法, 就是使用 source 选项. Javac -source 1.3 classFileName.-source 选项, 指定源码版本.

-target 选项, 指定目标class版本. 如果已经指定了source版本, 那target版本不能低于source.target选项也是一个对javac来说很灵活的设置.
你可以做到, 用低版本的source编译出高版本的class. 很有趣哦! 不同版本的javac, 默认source与target选项值

JDK/J2SDK Default Source Source Range Default Target Target Range
1.0.x 1.0 1.1
1.1.x 1.1 1.1
1.2.x 1.2 1.1 1.1 – 1.2
1.3.x 1.2/1.3 1.1 1.1 – 1.3
1.4.x 1.2/1.3 1.2? – 1.4 1.2 1.1 – 1.4
5 1.5 1.2 – 1.5 1.5 1.1 – 1.5
6 1.5 1.2 – 1.6 1.6 1.1 – 1.6
7 1.7 1.2 – 1.7 1.7 1.1 – 1.7

Read more…

2009/08/06 | Posted in Development Skills

Linux下查看真实CPU数量(逻辑)

使用linux的朋友, 对 /proc/cpuinfo 这个文件肯定不陌生. 它是用来存储cpu硬件信息的.
信息内容分别列出了processor 0 – n 的规格。这里需要注意,如果你认为n就是真实的cpu数的话, 就大错特错了.
这里的n是最终虚拟出来的cpu数量,是逻辑cpu数量。

一般情况,我们认为一颗cpu可以有多核,加上intel的超线程技术(HT), 可以在逻辑上再分一倍数量的cpu core出来。
因此真实cpu数量=物理cpu数量 x cpu cores 这个规格值 x 2(如果支持并开启ht)

物理cpu数量,可以数不重复的 physical id 有几个。
下面这个例子说明,服务器有一颗物理cpu,cpu的核数是4,支持ht技术。
所以最终的cpu数量是8.

[admin@transmit180 logs]$ cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 15
model name : Intel(R) Xeon(R) CPU E5310 @ 1.60GHz
stepping : 7
cpu MHz : 1596.035
cache size : 4096 KB
physical id : 0
siblings : 4
core id : 0
cpu cores : 4
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 10
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc pni monitor ds_cpl tm2 xtpr
bogomips : 3194.26

2009/08/06 | Posted in Linux & Gentoo

15种提高系统伸缩性和性能的最佳实践

1, 提高系统性能, 需要尽早做性能剖析, 而且要经常做.当项目进行到后期, 你再考虑剖析性能时, 复杂的系统结构会让你望而却步.
2, 开发者和SA的合作是有必要的, SA可以反馈线上的运行状况给开发者, 防止一些紧急事故的发生, 恶化.
3, 模拟生产环境的数据来做测试, 可以减少上线时, 出现未知问题的概率, 使问题更早的被暴露出来.
4, 通过监控日志, 查看系统负载, 分析程序运行状况等手段, 来跟踪生产系统的性能变化趋势, 有利于提早问题.
5, 任何时候都不要相信假设, 要用真实环境/数据说话.
6, 解耦系统, 可以隔离性能热点.
7, 缓存是最有效的优化手段.
8, 尝试使用数据联邦, 来整合多个数据源, 减少数据依赖的复杂性.
9, 集群节点间做数据复制, 可使系统具备良好的伸缩性.
10, 尽量避开使用一些伸缩性低的资源服务(影响自身的伸缩性), 比如无法缓存的, 存在大量读写操作的数据服务.
11, 使用一些语言级的优化, 比如调优jvm options. 开启php engine缓存解析内容等.
12, 严格控制一些可能存在瓶颈的外部数据访问, 比如 Feed, RDBMS等.
13, 写代码谨防懒惰, 一些简单的循环也可能给系统带来严重的危害.
14, 不要弄巧成拙, 避免过度设计.
15, 缓存最重要的是命中率, 没有高命中率不如不缓存.

英文PPT: http://www.docstoc.com/docs/9315209/scale_perf_best_practices

2009/08/04 | Posted in Performance Tuning

windows7极限性能优化

调优windows, 大致可以从8个方面入手. 分别为 系统服务, 启动项, 驱动程序, 图形设置, 精简系统功能,系统设置,精简网卡功能,使用优化软件.
优化的理念是 “精简”,即禁用所有不用或不常用的功能。
下文是, 笔者在反复尝试后得出的一些调优经验, 希望对大家有用. (阅读本文的作者, 需要对windows有一定的了解)

1, 优化系统服务.
我的调优思路是, 保证基本可用, 然后再进行个人性化定制.

以下服务是我反复尝试后, 得出的最简服务列表. 优化者, 请将这些服务设为 automatic(自动启动).

怎么查看服务列表?
运行 services.msc

Cryptographic Services
Desktop Window Manager Session Manager
DHCP Client
DNS Client
Group Policy Client
Multimedia Class Scheduler
Plug and Play
Power
Remote Procedure Call (RPC)
RPC Endpoint Mapper
Superfetch
Task Scheduler
Themes
User Profile Service
Windows Audio
Windows Audio Endpoint Builder
Windows Event Log
Windows Management Instrumentation
Workstation

Read more…

2009/07/14 | Posted in Performance Tuning

chrome优化, 取消代理的自动检测设置

有的时候, 当你打开网页, chrome会等好几秒才显示页面.此时, 如果你仔细观察, 会发现左下角有一行 “正在解析代理” 字样.
这个提示, 说明你的ie代理设置里启用了自动检测功能. 也正是因为这个功能, 导致了chrome在访问网站前要先做一次代理解析, 影响了访问速度.

关闭这个选项后, 可以加速网页的打开, 建议关闭.

chrome设置
Read more…

2009/06/26 | Posted in Others