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

DI(Dependency Injection)の標準化とDIコンテナ不要論

最近、標準をめぐってなにかとDI(Dependency Injection)が話題ですが、 JavaではDIがかなり標準的な実装パターンとして認知されてきました。 ここで、パッケージとして標準化されるのであれば、もうDIコンテナを利用しないパターンも想定してもよいと思う。…

GCのGC

JVMはC++で記述されていると思うんだけども、 C++自体にはGC機構はないので、VM内部のメモリ管理はどうしているのだろうとふと疑問に思った。BohemGCというライブラリとかはあるみたいだけども。そういうGCライブラリ使ってるとすると、GC(Java用のGC)のGC…

継承によるパフォーマンス劣化の落とし穴

あるインターフェースを実装している異なる2つのクラスを生成し、 メソッドを実行する場合にメソッド呼び出しコストが増大する。 2つのクラスインスタンス生成でのバイトコードでの影響はほとんどない。 スタック位置が異なる。 ※javapで確認 推測になって…

verboseGCでの分析ポイント

JVMに "-verbosegc" オプションをつけて起動するとGCの情報が出力される。 その際に見る必要があるポイント。HotSpotVMの場合・GC後の最大ヒープサイズ 初期・最大ヒープサイズ調整の一因とする。 ・GC実行時間 パフォーマンス考慮の一因とする。 ・GCでの開…

APサーバーでパフォーマンスチューニングするときに考えるポイント

APサーバーを利用したシステムでパフォーマンスチューニングを行う際に 以下の箇所を考えると良い。 ・スレッドプール スレッド生成にコストがかかるためプールする。 ・コネクションプール コネクション接続にコストがかかるためプールする。 ・キャッシュ …

和暦を扱うときの注意点

和暦を扱うときに注意することがある。 明治って元年がなくて、明治6年から開始されている。

HTMLはヨーロッパで開発されたとさ。

HTMLはアメリカで開発されたと思ってたら、原型はヨーロッパで開発されてたみたい。開発者はイギリス人でした。http://ja.wikipedia.org/wiki/%E3%83%86%E3%82%A3%E3%83%A0%E3%83%BB%E3%83%90%E3%83%BC%E3%83%8A%E3%83%BC%E3%82%BA%E3%83%BB%E3%83%AA%E3%83%…

G1GCについて

Java7からG1GCが導入されます。現在のJavaでは世代別GCがメインアルゴリズムで、ヒープ領域を多量に使用します。 これは、源流のCopyingGCの欠点(※コピー元とコピー先が必要)でもあります。 そこで、このCopyingGCの多ヒープ領域確保を少なくした試みがG1G…

Jave言語について!?

これは真実なのか!?http://ci.nii.ac.jp/naid/110000117827/あるならあるで驚きだけども、無いなら無いで誰も気づかないのが驚き。

I18nの意味

国際化のInternationalizationを略してI18nとなる。Iとnの間に18文字だから。 地域化のLocalization を略してL10nというのもある。ほかにはGlobalizationを略してG11nなんかもある。

JavaにおけるGCの種類とオプション

Java6でのGCの種類とオプションを調べてみた。 オプション 内容 デフォルト -XX:+ScavengeBeforeFullGC ScavengeGCとFullGC デフォルト -XX:-UseConcMarkSweepGC ConcurrentMarkAndSweepGC -XX:+UseParallelGC ScavengeGCを並列処理 デフォルト -XX:-UsePara…

Java誕生の歴史

Javaの誕生のお話1.パトリック・ノートンというサンの社員が辞表を提出する際に会社の不満とやりたいことをぶちまけたメールを社長へ提出。 2.ノートンのやりたいことを実現するプロジェクト「Greenプロジェクト」発足、ノートン、ジェームズ・ゴズリン…

Biased Lockingのパフォーマンス効果

Java6ではデフォルトでBiased Lockingが組み込まれています。 Biased Lockingとは同一のスレッドからのロック取得コストを低減させる仕組みです。 通常はスレッド中のオブジェクトの状態として、非ロック状態とロック状態を持つ。 その他、GC回収待ち状態な…

ドキュメントを正しく丁寧に読む力。

情報を伝えるというのは色々な手段がある。 その中でドキュメントというのは一番の伝達手段だと思う。 知的労働者やその他のワーカーでもマニュアルや契約書、その他ドキュメント 社会に属する限りそれらを読む機会は多々ある。 知的情報を求めていくのなら…

Javaは遅い!?

http://www.theserverside.com/news/thread.tss?thread_id=54590宗教戦争的な様相ですね。 自分も最近作ったプログラムのパフォーマンスが芳しくなかったので凹んでるとき、この記事をみて、危うくJavaのせいにしようとしました(笑)Swingでクライアントア…

JavaVM 3rd Edition Specドキュメント ドラフトリリース

http://blogs.sun.com/abuckley/entry/draft_of_the_java_vmこれは要チェックですね。

Jettyにディレクトリトラバーサルの脆弱性

いまさらですが、Jettyにディレクトリトラバーサルの脆弱性が見つかったそうです。参考http://www.kb.cert.org/vuls/id/402580

Javaでの配列境界チェックとは

Javaでは配列に値を代入する際に境界チェックを行う。 これがなければもう少しパフォーマンスが向上するのだけども、セキュリティの観点からチェックは必要なのである。 Javaでは配列のサイズを求めるときにlengthという属性を参照すればよい。 これは配列の…

スペックとリソース

ビジネスでの金脈はリソースを握るということ。 リソースを握ることによりビジネスをコントロールすることができます。 例えば石油を供給する立場だと供給量を操作し、石油の市場価格を操作します。 政治での金脈はスペックを操作する権利を持つということ。…

プログラマはプロでないといけない訳

プロ(professional)のグラマー(grammar) =文法の専門家=プログラマー プロなのにここまで評価がへんぴな職業もあまりないんじゃないか?