amalgamationの様子をみる~その3 [SQLite]
「./tool/vdbe-compress.tcl」を見て行きます。冒頭にコメントが書かれているので、とりあえずそれを読んでみましょう・・。
ソースファイル「vdbe.c」をいじって「sqlite3VdbeExec()」実行時のスタックサイズを減らすとのこと。「vdbe.c」って、どっかから持ってきたソースなんでしょうかねぇ・・。
ところで、前回、このスクリプトが「target_source」を作成してるとか想像してましたが、「target_source」のルールの末尾に書かれている「touch target_source」が該当のファイルを作っているようですね。「touch」コマンドはファイルが無い場合に空のファイルを作成するそうです。タイムスタンプを変えるだけかと思ってました・・。
*
それはさておき、このスクリプトは特に実行しなくてもいいとのこと。実行してもしなくてもソースの動作結果は変わらない様です。単純にスタックを減らすためとのこと。組み込み向けですかね・・?
スタックの削減方法ですが、ローカル変数を個々の「opcode」の実装から抜き出して、一つの共用体(union)に詰め込んでいるとのこと。まあ、具体的には変更前と変更後のソースを見比べないと何ともわかんないですね。
ま、こういう処理もしていると言うことで、これについてはここまでにしておきます。
ソースファイル「vdbe.c」をいじって「sqlite3VdbeExec()」実行時のスタックサイズを減らすとのこと。「vdbe.c」って、どっかから持ってきたソースなんでしょうかねぇ・・。
ところで、前回、このスクリプトが「target_source」を作成してるとか想像してましたが、「target_source」のルールの末尾に書かれている「touch target_source」が該当のファイルを作っているようですね。「touch」コマンドはファイルが無い場合に空のファイルを作成するそうです。タイムスタンプを変えるだけかと思ってました・・。
*
それはさておき、このスクリプトは特に実行しなくてもいいとのこと。実行してもしなくてもソースの動作結果は変わらない様です。単純にスタックを減らすためとのこと。組み込み向けですかね・・?
スタックの削減方法ですが、ローカル変数を個々の「opcode」の実装から抜き出して、一つの共用体(union)に詰め込んでいるとのこと。まあ、具体的には変更前と変更後のソースを見比べないと何ともわかんないですね。
ま、こういう処理もしていると言うことで、これについてはここまでにしておきます。
2012-06-26 01:00
nice!(0)
コメント(0)
トラックバック(0)
コメント 0