[1296] Re:コード生成部分について
投稿者:山
2009/05/25 19:44:20
見ていただきありがとうございます。
>要点は、文字列以外はコンスタントプールを使わずに、直接定数を
>バイトコードの中に埋め込むようにした、ということですよね。
はい
>効率を考えてバイトコードではなくワードコード)中に埋め込んでいるそうです。
管理面とスピードを考えて、コードに埋め込みましたが問題なさそうでよかった。
>あと、もしシステムグローバル変数がDVM_Valueを保持しているのなら、
コード生成が一応落ち着いたのでVM部分を見ました。計算スタックはDVM_Value
なんですね。VMを複数スレッド起動させるので、VMは極力最小にしようと思って
います。その為に、省ける分はがさがさ省いていっています。コンスタントプール
も、まさに、文字列を詰め込んだ配列とそのアクセスポインタテーブルのみです。
それと、GCは不要なシステムになります。INT用とdouble用の固定長プール、そして
文字列はstringに任せてしまうのでVMとしてのGCは無くなりました。この部分は
VM管理システムで一括管理する予定。コード生成もそうでしたが、必要機能のた
めに実行部分は最小に、その結果管理部分が大きくなっています。
新しく組み込んでいる部分をあいまいに表現して申し訳ありません。なにぶん
出来てみないとなんとも言えなくて、絵に描いたもちを説明するのも気が引けて。
その部分はある程度完成するまでお待ちください。構想したものを組み込んで、
自身が確認しないとなんとも^^;
追記、目的ターゲットでは、細かい文字列操作は多量にあると思いますが、長い
文字列は無いと思われますので、stringの管理でも問題は無いと思っています。
しかし、実際やってみての部分は有ります。その時は専用の文字列だけを管理する
処理を組み込む予定です。その場合も文字列だけなのでGCは不要で出来ます。