profaim.base基盤 |
profaim のタグ処理について考える
現在稼働中の profaim.base は profaim タグとして定義したタグを上から順番に処理していく仕様になっています。 今回、新しく profaim.base を構築しようとしてるわけですけど、 今回はどのように実装しようか前もって検討することにしました。
以下は検討中の仕様です。実際の実装時は異なる仕様で実装する可能性があります。
現行の profaim タグ構成
現行の profaim.base では、 ウェブページ中に profaimタグ という profaim.base で処理する独自のタグを埋め込みます。それを profaim.base で処理して HTML デザインに変換するという手続きを踏んでいます。また、同じタグでもページ毎に個性をつけられるよう(同じタグでも異なるデザインを出力できるよう)に profaimタグ のパラメータとして利用できるメタ情報を <profaim.meta> タグを使って定義できるようにしています。この <profaim.meta> タグも profaimタグ に分類されています。
タグ処理について検討
profaimタグ を目的から2種類に分けることにしました。 1つが profaim メタタグ、 もう1つが profaimデザインタグ です。タグ形式はまだ決めていませんが、記述があまり長くならず、明確に区別できるようにしようと思います。
profaimメタタグ
profaimメタタグは profaimデザインタグに必要な情報となるので、 ページのどの位置に定義しても、 profaimデザインタグ に先だって処理される必要があります。 また、profaimメタタグに関しては上から順番に順次処理していくことで、上で定義した内容を使用して次のメタ情報を定義できるようにする予定です。
profaimデザインタグ
profaimデザインタグ同士は互いに依存しない作りになっています。 したがって profaimメタタグ さえ処理し終われば、 profaimデザインタグ の処理は好きな順番で行うことができます。そこで、 profaimデザインタグ はスレッド実行させようと思います。 親子関係になっているタグについては親タグが別スレッドで子タグを処理して、子タグのスレッドが終了するまで親タグが待機するような構成を考えています。
マルチコアCPU や マルチCPU 構成のハードウェアなら、スレッドを駆使した方が早いと思います。 ただ、シングルCPU の場合はスレッドを作らない方が早そうなので、基盤レベルでマルチスレッドモード、シングルスレッドモードを切り替えられるようにしたらいいのではと思いました。パフォーマンスも含めて検討していこうと思います。