FLAGS

MENU

NOTICE

2009年7月6日月曜日

(プログラムネタ) マルチスレッドプログラム2 (mixi05-u459989-200907061758)

ミクシ内で書かれた旧おかあつ日記を紹介します。
(プログラムネタ) マルチスレッドプログラム2
2009年07月06日17:58
java.util.concurrent の ReentrantLock と 組み込みの synchronization とどちらが性能が高いのか、調べてみた。

http://blogs.sun.com/dave/entry/java_util_concurrent_reentrantlock_vs
http://www.ibm.com/developerworks/java/library/j-jtp10185/index.html

上記によると組み込み式の方が性能が高いようだ。 JVM 組み込みの synchronization には Lock Elision とか Lock Coarsening というとんでもない最適化のテクが組み込まれていて、JVMが クラスファイルを ネイティブコードにコンパイルするときに 不要なロックを取り除いたり、状況に応じてコストの低いロックに切り替えたりするのだそうだ。

これは画期的で驚異的に高度な技術だと思う。 すばらしい。

JVMは他にも画期的な技術がたくさん組み込まれている。 知れば知るほどとりこになるような面白くて画期的な技術が組み込まれている。

Javaには、この一点の輝きがある。 だからこそ、いかに不満があっても手放そうと思わない。

しかし、いつも思うけど Javaって、どうもムラがある。 このようにある部分は信じられないほど高性能なのに、ある部分は信じられないほどバカでマヌケで設計になっていたりする。

一般的に JVM関連の技術は 天衣無縫といっていいほど高度な設計技法が組み込まれている。 java.lang パッケージ java.util パッケージ 配下のクラスはとてもよく考えられていて使いやすいクラスが多い。

これがjavax パッケージになるとだんだんとおかしくなってくる。 Swing とか AWT とか Loggerとか 間抜け臭が漂う、きな臭いクラスが増えてくる。 J2EE になると、腐敗臭をプンプン漂わせた、もう見るのも触るのも嫌だ、というぐらい設計の悪いクラスのオンパレードになる。

Swingの設計者は万能バカ集団だ。
J2EEは巨大バカである。
JavaFXや NetBeans は バカではないが、ペテン師である。

このバカ集団のおかげで OSX版の Java6がいつまでたってもリリースされなかったり、 こんなにすばらしいJavaなのに、企業から見放されたりするのである。

出展 2009年07月06日17:58 『(プログラムネタ) マルチスレッドプログラム2』

著者オカアツシについて


小学生の頃からプログラミングが趣味。都内でジャズギタリストからプログラマに転身。プログラマをやめて、ラオス国境周辺で語学武者修行。12年に渡る辺境での放浪生活から生還し、都内でジャズギタリストとしてリベンジ中 ─── そういう僕が気付いた『言語と音楽』の不思議な関係についてご紹介します。

特技は、即興演奏・作曲家・エッセイスト・言語研究者・コンピュータープログラマ・話せる言語・ラオ語・タイ語(東北イサーン方言)・中国語・英語/使えるシステム/PostgreSQL 15 / React.js / Node.js 等々




おかあつ日記メニューバーをリセット


©2022 オカアツシ ALL RIGHT RESERVED