2009-04-01から1ヶ月間の記事一覧

HotSpotコンパイラとVMがやっていること。

パフォーマンスに効果を発揮するのがメソッドのインライン化なのだけども、 HotSpotVMはなんと動的にメソッドインライン化とインタプリタを使い分けているらしい。(トリガーは不明だけども・・・) 実行時にはインライン化とインタプリタどっちかに限定して…

メソッドにfinalをつけると高速化されるわけ

メソッドにfinalをつけると高速化される理由はコンパイル時の最適化でメソッドのインライン化が実施され、メソッドコールのオーバヘッドが少なくなるため。その代わり作成されるクラスファイルサイズは大きくなる。 通常は、コンパイルオプション "-o"をつけ…

StringBufferにおけるパフォーマンスチューニングの落とし穴

文字列を連結させる場合にStringBufferを使え(最近はStringBuilderか)というのが定石だがじつは落とし穴がある。 下記ソースではいずれも文字列を連結する処理なんだけども、”+”を使用するのが一番速い処理となってしまっている。 ちなみにコンパイラの最…

POIで作成したエクセルファイルをJavaで動的に開く方法

Apache POIもそろそろ3.5 beta6がでるようです。 大幅なメモリ消費を改善してほしいものですが、どうでしょうか!? POIでExcelファイルを作成してその作成したファイルをすぐ確認させたいときに 動的にファイルを開く方法がある。Java6以降になってしまうの…

Oracle、Sunを買収

Oracle、Sunを買収とのこと Oracle、Sunを買収 IBMでもHPでもなく、Sun Microsystemsを射止めたのはソフトウェア会社のOracleだった。 2009年04月20日 21時35分 更新 米Oracleは4月20日、米Sun Microsystemsを約74億ドルで買収することについて、Sunと合意し…

ジェネリクスのパフォーマンス効果とArrayListとVector比較

ArrayListとVectorではArrayListが早いと聞くけど、どの程度違うものか計測してみた。 また、ジェネリクスを使った場合とそうでない場合もどの程度違うのか計測した。 ArrayList(なし) ArrayList(あり) Vector(なし) Vector(あり) 27ms. 25ms. 37ms. …

JTableのJTalbeHeaderの高さを変更して列幅の合計が1200ピクセルを超えて横スクロールするとバグった。

JTableのJTalbeHeaderの高さを変更して列幅の合計が1200ピクセルを超えて横スクロールするとバグった。 原因はつかめてないのだけども現象として記録。 APIのバグっぽいんだけどなー。以下ソース public class TableTest { //検証1 // private Object d…

え?IBMのSun買収は決裂?

IBMのSun買収は決裂したって?http://d.hatena.ne.jp/kensir0u/20090318/1237377064の経過報告 メディアの報告によると、Sun Microsystemsを買収するというIBMの協議が破綻した。伝えられるところによると、IBMは1株およそ9.5ドルを提供した。Sunの株の価値…

本になったら絶対買うドキュメント。

JavaDocは本になったら絶対買うんだけどなー。

SwingのJFileChooserの代わりにSWTのFileDialogを使う方法

○JFileChooserの起動遅延バグhttp://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6372808 JFileChooserの初期起動が遅いのでそこだけSWTのFileDialogを使うことにした。 public class SWTSwing { public static void main(String[] args) { JFrame frame =…

研究者に必要な素養

ある本を読んでたら研究者に必要な素養が書いてあったのでメモ。 ・知識吸収力(大学の授業を聞くだけでついてこれるくらいは最低必要らしい。) ・観察力(これが無ければ研究意欲も、発見もない) ・理論構築力(論文書かないとだし。) ・分析力(評価も…

EBCDICかとおもってたらEBCDIKだった件

変換テーブルどっかにころがってないかなー?? JavaでもCでもいいので。 調べたらCP930でいけそうだ。

Java6でライブラリ拡張フォルダではまった件。

特に意識していなかったんだけども、 JDK 6u10からインストールフォルダがデフォルトでjre6になったらしい。 http://java.sun.com/javase/ja/6/webnotes/6u11.html本日、ずっとC:\Program Files\Java\jre1.6.0_07\lib\extにjarを突っ込んでて、あれ?うごか…

JFileChooserの初期起動が遅い件について、JNI経由で呼び出しをしようとしてみた。

JFileChooserの初期起動が遅いのでJNI経由で呼び出しを行うと意外と早いんじゃないかと思って実験してみた。 まずは、よさそうなJNIブリッジのライブラリがあったのでこれを使用することにした。(※JNI詳しくないし、めんどくさいから、Cから作るくらいなら…

文字コードの歴史と関係

文字コードの歴史と関係を調べてみた。○UnicodeとJISの対応表 Unicode JIS リリース年 Unicode1.1 JISX0208 1992 Unicode2.0 JISX0213 1996 Unicode2.1 1998 Unicode3.0 1999 Unicode3.1 JISX0213 2001 Unicode3.2 JISX0213:2004 2002 Unicode4.0.0 2003 Un…

EncodeUtil作った。

仕事で文字コード変換が必要になりそうなので、ためしに作ってみた。 public class EncodingUtil { private static final String EMPTY_STRING = ""; private static final byte[] EMPTY_BYTES = EMPTY_STRING.getBytes(); public static String convert2byt…

数値の表現のお勉強

・固定小数点数 整数部分に用いるビット数と小数部分に用いるビット数をあらかじめ固定・定義して表現する数値 ・単精度浮動小数点数 単精度浮動小数点数では32ビット中で符号部1ビット・指数部8ビット・仮数部23ビットで表現されている。 ・倍精度浮動小数…

クイックソートに重大な脆弱性!?

え?クイックソートに重大な脆弱性!? L0pht Heavy Industries(サイト)の研究者が、Quicksortアルゴリズム(Wikipedia)の標準実装における欠陥を発見した。確実にもっとも広範囲にわたる脆弱性の一つになる事が確実である。 InfoQはL0phtのDildog氏(Wikipedi…