<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7589941962350403980</id><updated>2012-02-16T03:58:17.126-08:00</updated><category term='OpenJDK'/><title type='text'>Hiroshi Yamauchi's Blog</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://hiroshiyamauchi.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7589941962350403980/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://hiroshiyamauchi.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Hiroshi Yamauchi</name><uri>http://www.blogger.com/profile/10251146076703886326</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>19</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7589941962350403980.post-3555948039351547426</id><published>2010-08-28T21:51:00.000-07:00</published><updated>2010-08-29T00:56:52.915-07:00</updated><title type='text'>Fast unsigned byte lexicographical comparator</title><summary type='text'>A common order used in an English dictionary is called the lexicographical order (or the alphabetic order). The same order can be used to sort binary data where bytes are letters and arrays of bytes are words. It is in fact commonly used to sort binary data or sequences of bytes (e.g., a compressed data or binary-encoded data).

Those bytes are usually unsigned. However, there is no standard </summary><link rel='replies' type='application/atom+xml' href='http://hiroshiyamauchi.blogspot.com/feeds/3555948039351547426/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7589941962350403980&amp;postID=3555948039351547426' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7589941962350403980/posts/default/3555948039351547426'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7589941962350403980/posts/default/3555948039351547426'/><link rel='alternate' type='text/html' href='http://hiroshiyamauchi.blogspot.com/2010/08/fast-unsigned-byte-lexicographical.html' title='Fast unsigned byte lexicographical comparator'/><author><name>Hiroshi Yamauchi</name><uri>http://www.blogger.com/profile/10251146076703886326</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7589941962350403980.post-42406476306323590</id><published>2010-06-26T22:33:00.000-07:00</published><updated>2010-06-26T22:37:05.598-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenJDK'/><title type='text'>Joined the OpenJDK Hotspot group</title><summary type='text'>Back in April, I was voted in and joined the OpenJDK HotSpot group. Here's a link to the call-for-votes email thread:

http://mail.openjdk.java.net/pipermail/hotspot-dev/2010-April/002866.html

Here's the list of people in various groups of the OpenJDK project:

http://db.openjdk.java.net/people

I thank Chuck Rasbold, who coordinated and hosted the voting process, and those who voted for my </summary><link rel='replies' type='application/atom+xml' href='http://hiroshiyamauchi.blogspot.com/feeds/42406476306323590/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7589941962350403980&amp;postID=42406476306323590' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7589941962350403980/posts/default/42406476306323590'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7589941962350403980/posts/default/42406476306323590'/><link rel='alternate' type='text/html' href='http://hiroshiyamauchi.blogspot.com/2010/06/joined-openjdk-hotspot-group.html' title='Joined the OpenJDK Hotspot group'/><author><name>Hiroshi Yamauchi</name><uri>http://www.blogger.com/profile/10251146076703886326</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7589941962350403980.post-6300950984224058147</id><published>2010-06-26T22:27:00.000-07:00</published><updated>2010-06-27T21:08:53.171-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenJDK'/><title type='text'>Short/Character.reverseBytes compiler intrinsics</title><summary type='text'>I worked on a small improvement on the Hotspot server compiler.

Here's the mailing list thread:

http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/2010-April/003054.html

Here's the committed change:

http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/d7f654633cfe

The Short/Character.reverseBytes() methods swap the bytes within the 2 byte short or char values. This is commonly </summary><link rel='replies' type='application/atom+xml' href='http://hiroshiyamauchi.blogspot.com/feeds/6300950984224058147/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7589941962350403980&amp;postID=6300950984224058147' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7589941962350403980/posts/default/6300950984224058147'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7589941962350403980/posts/default/6300950984224058147'/><link rel='alternate' type='text/html' href='http://hiroshiyamauchi.blogspot.com/2010/06/shortcharacterreversebytes-compiler.html' title='Short/Character.reverseBytes compiler intrinsics'/><author><name>Hiroshi Yamauchi</name><uri>http://www.blogger.com/profile/10251146076703886326</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7589941962350403980.post-7436198295779975488</id><published>2010-02-09T12:41:00.000-08:00</published><updated>2010-02-16T20:56:55.551-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenJDK'/><title type='text'>Shorter long multiplication in Server Compiler on x86 32 bit</title><summary type='text'>The other day, I contributed a patch that lets Hotspot Server compiler emit shorter multiplication sequence for long (64bit) multiplications. Here are some links:

The patch + the commit message: http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/e8443c7be117

Sun bug:
http://bugs.sun.com/view_bug.do?bug_id=6921969

Mailing list posts:http://mail.openjdk.java.net/pipermail/</summary><link rel='replies' type='application/atom+xml' href='http://hiroshiyamauchi.blogspot.com/feeds/7436198295779975488/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7589941962350403980&amp;postID=7436198295779975488' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7589941962350403980/posts/default/7436198295779975488'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7589941962350403980/posts/default/7436198295779975488'/><link rel='alternate' type='text/html' href='http://hiroshiyamauchi.blogspot.com/2010/02/shorter-long-multiplication-in-server.html' title='Shorter long multiplication in Server Compiler on x86 32 bit'/><author><name>Hiroshi Yamauchi</name><uri>http://www.blogger.com/profile/10251146076703886326</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7589941962350403980.post-7699415628439389059</id><published>2009-12-29T21:15:00.001-08:00</published><updated>2009-12-29T22:52:13.815-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenJDK'/><title type='text'>GC Threads</title><summary type='text'>There are two JVM flags/options that control how many GC threads are used in the JVM: ParallelGCThreads and ParallelCMSThreads.ParallelGCThreadsThis flag controls the number of threads used in the parallel garbage collector. This includes the young generation collector used by default. If the parallel GC is used (-XX:+UseParallelGC) or turned on by default on a 'server-class' machine,  this is </summary><link rel='replies' type='application/atom+xml' href='http://hiroshiyamauchi.blogspot.com/feeds/7699415628439389059/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7589941962350403980&amp;postID=7699415628439389059' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7589941962350403980/posts/default/7699415628439389059'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7589941962350403980/posts/default/7699415628439389059'/><link rel='alternate' type='text/html' href='http://hiroshiyamauchi.blogspot.com/2009/12/gc-threads.html' title='GC Threads'/><author><name>Hiroshi Yamauchi</name><uri>http://www.blogger.com/profile/10251146076703886326</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7589941962350403980.post-8307787249913913018</id><published>2009-12-29T21:14:00.000-08:00</published><updated>2010-06-26T22:40:42.808-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenJDK'/><title type='text'>Building OpenJDK faster</title><summary type='text'>A basic build instruction was described here. But the full build takes long. Here are the variables that I use to build OpenJDK faster for everyday builds:
NO_DOCS=true. This causes the build not to generate the javadoc docs for the JDK source code, which isn't very useful for daily engineering.
NO_IMAGES=true and DEV_ONLY=true. By default, the JDK makefile builds the JDK and the JRE images (as </summary><link rel='replies' type='application/atom+xml' href='http://hiroshiyamauchi.blogspot.com/feeds/8307787249913913018/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7589941962350403980&amp;postID=8307787249913913018' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7589941962350403980/posts/default/8307787249913913018'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7589941962350403980/posts/default/8307787249913913018'/><link rel='alternate' type='text/html' href='http://hiroshiyamauchi.blogspot.com/2009/12/building-openjdk-faster.html' title='Building OpenJDK faster'/><author><name>Hiroshi Yamauchi</name><uri>http://www.blogger.com/profile/10251146076703886326</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7589941962350403980.post-5466897509475601615</id><published>2009-12-29T21:13:00.000-08:00</published><updated>2009-12-29T23:10:14.916-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenJDK'/><title type='text'>JVM process memory</title><summary type='text'>Have you wondered what consumes memory in the JVM process. Here are the most of the list:The Java heap. The maximum size is controlled by flag -Xmx. This is where Java objects are allocated.The permanent generation (perm gen) heap. The maximum size is controlled by -XX:MaxPermSize. The default is 64MB on Linux/x86. This is where the JVM-level class metadata objects, interned strings (</summary><link rel='replies' type='application/atom+xml' href='http://hiroshiyamauchi.blogspot.com/feeds/5466897509475601615/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7589941962350403980&amp;postID=5466897509475601615' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7589941962350403980/posts/default/5466897509475601615'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7589941962350403980/posts/default/5466897509475601615'/><link rel='alternate' type='text/html' href='http://hiroshiyamauchi.blogspot.com/2009/12/jvm-process-memory.html' title='JVM process memory'/><author><name>Hiroshi Yamauchi</name><uri>http://www.blogger.com/profile/10251146076703886326</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7589941962350403980.post-3662271200549588420</id><published>2009-07-29T10:29:00.000-07:00</published><updated>2009-12-29T22:47:00.336-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenJDK'/><title type='text'>More 2D bugfixes</title><summary type='text'>I worked on a patch to fix a bug in the Pisces renderer: http://hg.openjdk.java.net/jdk7/2d/jdk/rev/fb03586d68b6 http://bugs.openjdk.java.net/show_bug.cgi?id=100030The bug was that a circle was rendered like a 'C' shape, that is, the right most edge of the circle wasn't rendered properly. It turned out that there was a off-by-one error.And there are a few more bugfixes in progress: https://</summary><link rel='replies' type='application/atom+xml' href='http://hiroshiyamauchi.blogspot.com/feeds/3662271200549588420/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7589941962350403980&amp;postID=3662271200549588420' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7589941962350403980/posts/default/3662271200549588420'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7589941962350403980/posts/default/3662271200549588420'/><link rel='alternate' type='text/html' href='http://hiroshiyamauchi.blogspot.com/2009/07/more-2d-bugfixes.html' title='More 2D bugfixes'/><author><name>Hiroshi Yamauchi</name><uri>http://www.blogger.com/profile/10251146076703886326</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7589941962350403980.post-4996871823469239415</id><published>2009-07-29T10:25:00.000-07:00</published><updated>2009-12-29T21:56:06.134-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenJDK'/><title type='text'>A server compiler crash fix</title><summary type='text'>Here's my latest contribution to OpenJDK:http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/fd50a67f97d1The patch fixes a server compiler crash that happens in a very rare condition, described here. A key attribute of the server compiler IR is that an instruction must dominate all its inputs. However, in the function remix_address_expressions(), this property was violated and caused a crash</summary><link rel='replies' type='application/atom+xml' href='http://hiroshiyamauchi.blogspot.com/feeds/4996871823469239415/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7589941962350403980&amp;postID=4996871823469239415' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7589941962350403980/posts/default/4996871823469239415'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7589941962350403980/posts/default/4996871823469239415'/><link rel='alternate' type='text/html' href='http://hiroshiyamauchi.blogspot.com/2009/07/server-compiler-crash-fix.html' title='A server compiler crash fix'/><author><name>Hiroshi Yamauchi</name><uri>http://www.blogger.com/profile/10251146076703886326</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7589941962350403980.post-8211353524655125235</id><published>2009-04-10T17:26:00.000-07:00</published><updated>2009-04-10T18:05:55.850-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenJDK'/><title type='text'>An event dispatch bug in JVMTI</title><summary type='text'>I encountered an event dispatch bug in JVMTI. See here for the communication on the openjdk mailing list. Here's a summary of what happened.According to the JVMTI spec, no JVMTI events should be sent during the JVMTI dead phase (after the VMDeath event was sent). However, I observed that the CompiledMethodLoad and CompiledMethodUnload events were sent during the dead phase after the </summary><link rel='replies' type='application/atom+xml' href='http://hiroshiyamauchi.blogspot.com/feeds/8211353524655125235/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7589941962350403980&amp;postID=8211353524655125235' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7589941962350403980/posts/default/8211353524655125235'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7589941962350403980/posts/default/8211353524655125235'/><link rel='alternate' type='text/html' href='http://hiroshiyamauchi.blogspot.com/2009/04/event-dispatch-bug-in-jvmti.html' title='An event dispatch bug in JVMTI'/><author><name>Hiroshi Yamauchi</name><uri>http://www.blogger.com/profile/10251146076703886326</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7589941962350403980.post-1970501170248252890</id><published>2009-03-16T17:05:00.000-07:00</published><updated>2009-03-16T17:18:21.622-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenJDK'/><title type='text'>Java 2D Miter Line Join Decoration Bugfix</title><summary type='text'>I'm not really a Java 2D person, but I contributed a small bugfix to OpenJDK for the miter line join rendering in the Java 2D Rendering Engine:http://hg.openjdk.java.net/jdk7/2d/jdk/rev/9318628e8eeeWhat's miter line join? For a quick tutorial on the basics of Java 2D rendering, see this page from the Java tutorial:http://java.sun.com/docs/books/tutorial/2d/geometry/strokeandfill.html</summary><link rel='replies' type='application/atom+xml' href='http://hiroshiyamauchi.blogspot.com/feeds/1970501170248252890/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7589941962350403980&amp;postID=1970501170248252890' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7589941962350403980/posts/default/1970501170248252890'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7589941962350403980/posts/default/1970501170248252890'/><link rel='alternate' type='text/html' href='http://hiroshiyamauchi.blogspot.com/2009/03/java-2d-miter-line-join-decoration.html' title='Java 2D Miter Line Join Decoration Bugfix'/><author><name>Hiroshi Yamauchi</name><uri>http://www.blogger.com/profile/10251146076703886326</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7589941962350403980.post-2427259635075626329</id><published>2009-01-25T21:43:00.000-08:00</published><updated>2009-01-25T21:52:00.184-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenJDK'/><title type='text'>Multithreaded CMS crash</title><summary type='text'>I ran across a CMS crash bug in Hotspot 10 b19 (OpenJDK6 b11), which is described here:http://bugs.sun.com/view_bug.do?bug_id=6722116The symptom is that VM crashes in the concurrent GC thread at the following stack trace (with mangled symbols):_</summary><link rel='replies' type='application/atom+xml' href='http://hiroshiyamauchi.blogspot.com/feeds/2427259635075626329/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7589941962350403980&amp;postID=2427259635075626329' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7589941962350403980/posts/default/2427259635075626329'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7589941962350403980/posts/default/2427259635075626329'/><link rel='alternate' type='text/html' href='http://hiroshiyamauchi.blogspot.com/2009/01/multithreaded-cms-crash.html' title='Multithreaded CMS crash'/><author><name>Hiroshi Yamauchi</name><uri>http://www.blogger.com/profile/10251146076703886326</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7589941962350403980.post-5068549442969472327</id><published>2009-01-14T21:23:00.000-08:00</published><updated>2009-01-25T21:56:32.499-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenJDK'/><title type='text'>Mysterious int arrays in a heap dump</title><summary type='text'>This week I have been investigating the issue of mysterious (primitive) int array objects showing up in a heap dump (generated by the jmap utility or the Hotspot MXBean.) They are mysterious because they do not have any references to them (appears to be dead objects) according to the jhat output.Today I learned that the garbage collectors may fabricate fake int array objects in certain cases. A </summary><link rel='replies' type='application/atom+xml' href='http://hiroshiyamauchi.blogspot.com/feeds/5068549442969472327/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7589941962350403980&amp;postID=5068549442969472327' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7589941962350403980/posts/default/5068549442969472327'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7589941962350403980/posts/default/5068549442969472327'/><link rel='alternate' type='text/html' href='http://hiroshiyamauchi.blogspot.com/2009/01/mysterious-int-arrays-in-heap-dump.html' title='Mysterious int arrays in a heap dump'/><author><name>Hiroshi Yamauchi</name><uri>http://www.blogger.com/profile/10251146076703886326</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7589941962350403980.post-7182588430602581753</id><published>2008-12-31T18:24:00.000-08:00</published><updated>2009-01-25T21:57:12.126-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenJDK'/><title type='text'>A server compiler crash during loop optimization</title><summary type='text'>I encountered a server compiler crash which happens in a Google server. Here's a link to more details:http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/2008-September/000320.htmlIt appears to happen in the split-if graph transformation during the loop optimization. It only happens in a big Java server and I couldn't create a small test for the crash. I was able to create a small patch </summary><link rel='replies' type='application/atom+xml' href='http://hiroshiyamauchi.blogspot.com/feeds/7182588430602581753/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7589941962350403980&amp;postID=7182588430602581753' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7589941962350403980/posts/default/7182588430602581753'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7589941962350403980/posts/default/7182588430602581753'/><link rel='alternate' type='text/html' href='http://hiroshiyamauchi.blogspot.com/2008/12/server-compiler-crash-during-loop.html' title='A server compiler crash during loop optimization'/><author><name>Hiroshi Yamauchi</name><uri>http://www.blogger.com/profile/10251146076703886326</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7589941962350403980.post-5559940224626853564</id><published>2008-12-31T18:08:00.000-08:00</published><updated>2008-12-31T18:22:03.396-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenJDK'/><title type='text'>JNI crashes in FontManager code</title><summary type='text'>I hit a JVM crash happening in the Java 2D font manager code. Here's the stack trace at the crash point:Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)V  [libjvm.so+0x298366]C  [libfontmanager.so+0x59e4]C  [libfreetype.so.6+0x73c9]  FT_Stream_Close+0x19C  [libfreetype.so.6+0xa065]  FT_Stream_Free+0x25C  [libfreetype.so.6+0xa6e2]C  [libfreetype.so.6+0xaf78]  </summary><link rel='replies' type='application/atom+xml' href='http://hiroshiyamauchi.blogspot.com/feeds/5559940224626853564/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7589941962350403980&amp;postID=5559940224626853564' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7589941962350403980/posts/default/5559940224626853564'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7589941962350403980/posts/default/5559940224626853564'/><link rel='alternate' type='text/html' href='http://hiroshiyamauchi.blogspot.com/2008/12/jni-crashes-in-fontmanager-code.html' title='JNI crashes in FontManager code'/><author><name>Hiroshi Yamauchi</name><uri>http://www.blogger.com/profile/10251146076703886326</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7589941962350403980.post-7531289947639040355</id><published>2008-12-31T17:42:00.000-08:00</published><updated>2008-12-31T17:59:39.229-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenJDK'/><title type='text'>Java 2D incompatibility between Sun JDK and OpenJDK</title><summary type='text'>The Java 2D font renderer component was replaced when Sun JDK was open-sourced as OpenJDK with an open source version. But it appeared to have some bug. It's was about the vertical position gap in rendered fonts. I reported this bug on the OpenJDK mailing list and got a bug at:http://bugs.sun.com/view_bug.do?bug_id=6761856The results from the test (included in the bug page):Sun JDK:   x=5.78125,y</summary><link rel='replies' type='application/atom+xml' href='http://hiroshiyamauchi.blogspot.com/feeds/7531289947639040355/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7589941962350403980&amp;postID=7531289947639040355' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7589941962350403980/posts/default/7531289947639040355'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7589941962350403980/posts/default/7531289947639040355'/><link rel='alternate' type='text/html' href='http://hiroshiyamauchi.blogspot.com/2008/12/java-2d-incompatibility-between-sun-jdk.html' title='Java 2D incompatibility between Sun JDK and OpenJDK'/><author><name>Hiroshi Yamauchi</name><uri>http://www.blogger.com/profile/10251146076703886326</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7589941962350403980.post-913044645899545390</id><published>2008-12-31T17:32:00.000-08:00</published><updated>2009-12-29T22:43:57.997-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenJDK'/><title type='text'>Stabilizing AsyncGetCallTrace</title><summary type='text'>AsyncGetCallTrace() is the unofficial interface for low overhead CPU profiling in the JVM. It allows CPU profilers to use a signal (SIGPROF) to collect samples of stack traces. Unlike many Java profiling tools out there that instruments bytecode, it has much lower runtime overhead. The problem was that it's a bit unstable and sometimes caused JVM crashes in OpenJDK6. So, I backported the </summary><link rel='replies' type='application/atom+xml' href='http://hiroshiyamauchi.blogspot.com/feeds/913044645899545390/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7589941962350403980&amp;postID=913044645899545390' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7589941962350403980/posts/default/913044645899545390'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7589941962350403980/posts/default/913044645899545390'/><link rel='alternate' type='text/html' href='http://hiroshiyamauchi.blogspot.com/2008/12/stabilizing-asyncgetcalltrace.html' title='Stabilizing AsyncGetCallTrace'/><author><name>Hiroshi Yamauchi</name><uri>http://www.blogger.com/profile/10251146076703886326</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7589941962350403980.post-6359754602814721615</id><published>2008-12-31T17:04:00.000-08:00</published><updated>2008-12-31T18:07:01.607-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenJDK'/><title type='text'>Inaccurate permgen usage stats (jmap -permstat)</title><summary type='text'>The jmap is a JVM memory inspection tool. "jmap -permstat pid" is the option to show the stats on the permgen (permanent generation) heap inside the JVM, where class metadata and interned strings are allocated.I happened to find a bug in jmap. In a small test, the "jmap -permstat" command reports only about 50-60% of the permgen memory usage (compared to the actual usage of permgen based on what </summary><link rel='replies' type='application/atom+xml' href='http://hiroshiyamauchi.blogspot.com/feeds/6359754602814721615/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7589941962350403980&amp;postID=6359754602814721615' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7589941962350403980/posts/default/6359754602814721615'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7589941962350403980/posts/default/6359754602814721615'/><link rel='alternate' type='text/html' href='http://hiroshiyamauchi.blogspot.com/2008/12/jmap-permstat.html' title='Inaccurate permgen usage stats (jmap -permstat)'/><author><name>Hiroshi Yamauchi</name><uri>http://www.blogger.com/profile/10251146076703886326</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7589941962350403980.post-7430753969084856636</id><published>2008-07-25T22:16:00.000-07:00</published><updated>2009-10-25T19:18:42.982-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenJDK'/><title type='text'>Building OpenJDK</title><summary type='text'>[This might be already out of date.]Here's how I build a 32 bit OpenJDK (build 31) on my Ubuntu 8.04 (Hardy Heron) system.1. DownloadDownload the following two filesthe source bundle,the binary plug which contains a small amount of the binary-only componentsfrom the download page, into the directory ~/openjdk7-ws/ and you get two files: the source bundle~/openjdk7-ws/openjdk-7-ea-src-b31-17_jul_</summary><link rel='replies' type='application/atom+xml' href='http://hiroshiyamauchi.blogspot.com/feeds/7430753969084856636/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7589941962350403980&amp;postID=7430753969084856636' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7589941962350403980/posts/default/7430753969084856636'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7589941962350403980/posts/default/7430753969084856636'/><link rel='alternate' type='text/html' href='http://hiroshiyamauchi.blogspot.com/2008/07/build-openjdk.html' title='Building OpenJDK'/><author><name>Hiroshi Yamauchi</name><uri>http://www.blogger.com/profile/10251146076703886326</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
