1

クエリがサーバーに到達したときに、クエリをc ++コードに変換し、共有オブジェクトとしてコンパイルしてコードを実行するシステムを構築する可能性を検討しています。

それが価値があるためには、コンパイル自体の時間は短くする必要があります。私のコードは対応するc++コードを生成できますが、ディスクに書き出してからgccを呼び出して.soファイルを取得して実行する必要がある場合、それだけの価値はないようです。

コードの小さなスニペットをコンパイルして共有オブジェクトとしてすばやく準備できる方法はありますか(クエリが到着するまでにかなりの起動時間がかかる可能性があります)。そのようなツールにパーミッシブライセンスがある場合は、さらにプラスになります。

編集:ユーザーが使用できるクエリ言語は非常に制限されているため、セキュリティの脅威は関係ありません。私自身のコードは、クエリをC++コードに変換します。clangに言及する答えは完璧です。

4

2 に答える 2

3

ClangをJITモードで実行すると、必要な速度が得られるはずです。例はここにありますが、安全性は別のものです...

ChにはJITも追加されており、そのインタープリターとして見ると、サンドボックス化/制御された環境がより簡単になる可能性があります。

于 2012-09-24T07:10:33.187 に答える
2

Necrolis の回答に加えて、専用の C++ パーサーClingもあります。重宝するかも。

于 2012-09-24T08:06:16.417 に答える