finalization (Re: struct timeval)
kono@ie.u-ryukyu.ac.jp (Shinji KONO) writes:
> 資源管理が出来ない言語って、僕は役にたたないと思う。
メモリ管理を自動化しただけで、すべての資源が管理できなくなっちゃうんで
すか? 今までだってレジスタ割り付けとかスタックとかは自動でやってました
が。
> > あんなのに頼らず、自分で陽に「使えない/閉じた/切れた」状態に変更するの
> > が良いかと。
>
> それをやるってことは、実は、自分でリンクリストを管理するわけ
> なんだけど、そいつをいじるたびに参照カウントがいじられるわけ
> で... まぁ、それだけが遅い原因ではないんだろうけど...
メモリ管理と他の資源の「破壊/閉じる/切断」は必ずしも同じタイミングじゃ
ない…ってのはmalloc/free論争の時に出てきましたよね。
たとえばウィンドウを閉じるとか、ページキャッシュをフラッシュしてDBファ
イルを閉じるとか、普通はfinalizerでやったりしませんよね。
> 最近、割りとローレベルなプログラムをJavaでやって、どうしても、
> C と同等な速度を出せなくて... とかいう話をソフトウェア科学会
> ので話すことになっていたりしますが...
標準Cで書けることですか?
標準Cで書けない(標準Javaでもできない)ような部分、たとえばGCとかスター
トアップルーチンとかスレッドライブラリとかを書く時、Jikesなんかは、が
んがん言語を拡張しちゃってますね。「このインターフェースを使っておくと
JITコンパイラが特別扱いしてインライン展開する」とかね。 処理系の中でし
か使わないので別にかまわない。まあCだろうとJavaだろうと、そうするしか
ないんだけど。
前田敦司
Fnews-brouse 1.9(20180406) -- by Mizuno, MWE <mwe@ccsf.jp>
GnuPG Key ID = ECC8A735
GnuPG Key fingerprint = 9BE6 B9E9 55A5 A499 CD51 946E 9BDC 7870 ECC8 A735