質問

私はC / C ++アプリケーションでのモノ(.NETのオープンソース実装を)埋め込むと人々の経験についての公聴会に興味があります。それはどのようにこのようなアプリケーションを配布し、依存関係が何しているのですか?私は、OS X上でテストしているとのモノは、巨大なフレームワーク(数百MB)として提供されます。私のアプリのユーザーはすべて、この大きな枠組みを必要とするか、それがダウンして除去することができるか、すべてがメインの実行ファイルにコンパイルされています。

私は以前にC ++アプリケーションでのLuaを埋め込むと経験を持っている、と私は私のメインの実行ファイルで静的に全体のluaインタプリタをリンクすることができますので、それは本当によく働きます。だから私は、外部依存関係を持っていません。それはモノと似た何かをすることは可能ですか?

彼らはLuaのに比べて、モノを見つけましたか?

にコメントすることができ、ここで

任意のLuaの人々

PS:埋め込むことにより、私はC ++モノ環境を初期化し、.NETアセンブリをロードし、それを実行した後との間の通信を可能にするアプリケーションは、C#コードは、アセンブリとメインの実行中にC ++の方法で言う

を意味
役に立ちましたか?

解決

あなたはおそらくも、あなたが埋め込むことができます方法について説明Monoの小型フットプリントのページを見てみる必要があります小さなランタイム。ヘック、彼らはムーンライトするでそれ自体を行います。

私はそれが役に立てば幸います。

他のヒント

これは2歳質問です。だから、状況は今異なってくることがあります。

私にとって、最も重要な点は、GCました。インクリメンタルGCが必要なので、私は、インタラクティブ・アプリやゲームのためのLuaを埋め込まれました。現在、Luaの5.1は正確な、インクリメンタルGCを持っていますが、私はモノの増分または正確GCのいずれかの証拠を発見しませんでした。だから、メモリは(でも、それは非常に小さなです!)リークし、そしてアプリケーションが断続的に苦労しています。

人は、GCの一時停止は、いくつかのパラメータをチューニングして、オブジェクトをプールすることによって解決することができますが、私が経験したように、これはのことはありませんのはの時間をかけての配布GC負荷のいずれかの種類せずに解決されると言いますGCでのアプローチ。世代別GCは、分散アルゴリズムの一つであるが、それはあまりにもラフ、ほとんど役に立たないのです。

あなたは一生のパターンを制御するかどうかあなたのコード内で使用されるオブジェクトをプールすることにより、インスタンスを再利用することはできませんので。 (基本クラスライブラリなど)

だから私は、インタラクティブ/(ソフト)リアルタイムアプリケーションのためのC#のプラットフォーム(少なくともまだモノや.NETなど)をお勧めしません。

<時間>

編集

私は、任意の増分/同時近づいGCはモノラルまたは.NET上に提示されるかどうかわかりません。彼らはGCの種類を提供についてあなたは確かにすることができた場合は、もちろん、それは:)を使用して大丈夫です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top