問題タブ [aot]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
6898 参照

java - 型付きコレクションをclojureからJavaに渡す方法は?

clojure と Java の相互運用の基本を知っています。つまり、clojure から Java を呼び出したり、その逆を行ったりします。ただし、型付きコレクションを clojure から Java に返すことはできませんでした。List<TypedObject>clojureを呼び出しているJavaコードからその性質の何かを見ようとしています。

jarファイルとして配布され、Javaから使用されるように、clojureを使用してAPIを作成しているとします。私の質問は、???? の代わりに何を渡すかということでした。上記の質問マークは AOT の :gen-class 内にあるため、プログラマーは私の API を使用して Java でコードを記述し、createListofTypedObjects() returns List<TypedObject>たとえば Eclipse 内から適切なインテリセンス/コード補完 (つまり: ) を使用できます。

0 投票する
2 に答える
385 参照

java - 私はJava / clojure相互運用のそれほど重要ではない例を探しています

ここにリンクされている私の質問に答えたい人はいますか how-to-pass-a-typed-collection-from-clojure-to-Java 、明確な例を提供することにより、既存のJavaにclojureを忍び込ませようとしている残りの私たちのためにスタック?

0 投票する
3 に答える
14892 参照

java - 無料の AOT Java コンパイラ

無料の AOT Java コンパイラを知っている人はいますか? 私が見つけたのはhttp://gcc.gnu.org/java/の 1 つだけです。

0 投票する
1 に答える
622 参照

java - IKVM静的モードと動的モードのどちらを選択するのですか?

.NETアプリケーションにいくつかのJavaライブラリをデプロイしています。Javaライブラリをikvmcを使用してDLLに変換する必要がありますか、それとも動的機能を使用して実行時に変換を実行する必要がありますか?

ikvmcを使用すると、アプリケーションの初期負荷が削減されると思います。誰かがこれを確認した経験がありますか?一方、動的ルートを使用した場合、ビルドプロセスはかなり簡単になります。

理論的には、事前の変換でも変換エラーを早期に検出できます。ただし、私のテストカバレッジはこの問題を軽減するはずです。

また、ikvmは動的に変換されたアセンブリをディスクのどこかにキャッシュできるので、最初のロード(おそらくセットアップの一部)だけが遅くなると思います。ただし、ikvmドキュメントには、これが当てはまることを示すものは何もありません。

0 投票する
1 に答える
2080 参照

clojure - leiningen (Clojure) で AOT コンパイルを最小化するにはどうすればよいですか

leiningen を使用して Clojure プロジェクトを作成すると、すべての *.clj ファイルが AOT でコンパイルされます。通常、AOT コンパイルは必要ないため、最小限に抑えたいと考えています。

これは、Java が支配する環境で Clojure を補完するものとして受け入れてもらうために必要なことです。奇妙な名前の 250 kB 以上のクラス ファイルを持ち、それらの中に小さな clj ファイルを隠すという代替案に対して、単一のクラス ファイルをいくつかの kB の clj ファイルと一緒に接着剤として「販売」する方が簡単です (これは実行中にそれ以上読み取らないでください)。

理想的には、「lein compile」の結果は、(clj ファイルと clojure ライブラリと共に) 必要なクラス インスタンスを実装する単一の小さなクラス ファイルになります。

これを達成する最も簡単な方法は何ですか?もちろん、Java を 1 行も書きたくありません (もちろん)。

テクノマンシーからのフィードバック後の更新

これがライニンゲンの問題だとは思いません。例を挙げて、私が何を求めているかを説明しましょう。例の長さをお許しください。私は leiningen 1.3.1 を使用していますが、1.4.0-SNAPSHOOT も同じように動作すると思います。

project.clj を次のように変更します (「:main dummy.core」を追加):

および src/dummy/core.clj から:

今それをコンパイルします:

これにより、 classes/dummyに次のファイルが生成されます。

これはすべて正しいです。結果を実行できます。

代わりに必要なものが来ましたが、手動で行います。core.classを除くすべてのクラスファイルを削除し、core.clj をclasses/dummyにコピーできます。これは非常に空に見えます。

core.class には、実行時に core.clj をロードするコードが含まれており、結果は同じです。まだ実行できます。

また、core.clj を変更することもできます (注:クラス/ダミー内で!)。もちろん、変更を再コンパイルする必要はありません。

私の質問はこれに要約されます:このcore.classだけを取得する簡単な方法はありますか?

0 投票する
2 に答える
388 参照

compiler-construction - 別のシステムのソースから再コンパイルせずに、コンパイルされたバイナリをネイティブ速度で完璧に実行しますか?

多くの人が一見するとすぐに「Java」と叫ぶかもしれないことを私は知っていますが、いいえ、私はJavaの品質を知っています。最初に私の質問を詳しく説明させてください。

通常、Windows、Mac OS X、Linuxのいずれであっても、システム上でプログラムをネイティブの速度で実行する場合は、ソースコードからコンパイルする必要があります。システム内の別のシステムのプログラムを実行する場合は、仮想マシンまたはエミュレーターを使用する必要があります。これらのツールを使用すると、非ネイティブOSで必要なプログラムを使用できますが、パフォーマンスや不具合の問題が発生する場合があります。

また、「JITコンパイラ」と呼ばれる新しいコンパイラがあり、コンパイラは実行前にバイトコードプログラムをネイティブの機械語に解析します。JITコンパイラを使用すると、パフォーマンスが大幅に向上する可能性がありますが、それでも、パフォーマンスはネイティブシステムで実行した場合と同じではありません。

Linux上の別のプログラムであるWINEも、LinuxシステムでWindowsプログラムを実行するための優れたツールです。その上でTeamFortress2を実行してみて、いくつかの設定を試してみました。Windowsでは1280x1024の中高設定で最大40fpsを取得しました。Linuxでは、最大40 fpsを取得するには、すべてを1280x1024で低くする必要があります。ただし、注目すべき点が2つあります。

  1. ポリゴンモデルの設定は、低く設定しても高く設定しても、フレームレートに影響を与えないようです。
  2. 現在のフレームの描画されたピクセルの操作を必要とする後処理効果またはいくつかの特殊効果がある場合、フレームレートは10〜20fpsに低下します。

この時点から、通常のポリゴンレンダリングは問題ないことがわかりますが、ジョブにグラフィックカードを必要とする新しいレンダリング方法になると、クロールが遅くなります。

とにかく、この質問はかなり理論的です。何かできることはありますか?WINEはSTEAMとTeamFortress2を実行できることがわかります。欠陥はありますが、より低い設定で実行できます。あるいは、「ソースから再コンパイルせずに、システム上のプログラム全体を別のシステムに変換して、ネイティブの速度を得ることができるか」という質問もする必要があります。AOTコンパイラもあるので、何かに使用することはできますか。このような?または、ネイティブ速度で実行されるシステムプログラムにネイティブではなく、完璧なものを作成することを不可能にする非常に多くの制約(DirectX呼び出しやソフトウェアアーキテクチャの違いなど)がありますか?

0 投票する
2 に答える
361 参照

ios-simulator - シミュレーターとデバイスでの monotouch の実行にはどのような違いがありますか?

(iPad) シミュレーターで使用される monotouch ランタイムと実際のデバイスでの実行の違いに関するドキュメントはありますか?

私は最近、シミュレーターではなく、デバイスで実行しているときに ExecutionEngineException (ここで言及されているものとは一見無関係) が発生するコードを変更する必要がありました。

シミュレーターで JIT が有効になっていますか (デバイス上にないことはわかっています)、またはなぜこの違いがあるのですか?

(こちらの Monotouch フォーラムにも質問が投稿されています)

0 投票する
2 に答える
1035 参照

java - Mac OSX用のネイティブJavaAOTはありますか?

MacがJavaアプリをネイティブの実行可能ファイルにコンパイルするためのAOTコンパイラがあるので、JREが不要になるのではないかと思います。

私はWindowsとLinuxの両方の商用例を見てきましたが、いくつかのポプラJavaライブラリでの成功が限られているオープンソースGCJを除いて、Mac用のものを見つけることができませんでした。

Mac用のネイティブ実行可能ファイルはJREを取り除き、場合によっては署名できるようにして、Javaで開発されたアプリケーションをアプリストアに受け入れることができるようにします。

0 投票する
2 に答える
4051 参照

c# - C# Mono aot with protobuf-net が ExecutionEngineException を取得

まず、protobuf-net http://code.google.com/p/protobuf-net/の作成者である Marc Gravell に大いに感謝し ます。本当に素晴らしいリソースです。とにかく、マークまたは他の誰かがこの例外を解決するのを手伝ってくれることを願っています.

Unity3D ゲーム エンジンを使用して、モバイル デバイス (iOS および Android) に protobuf-net を実装しようとしています。Unity 3.2 は Mono 2.6 を使用します。これは、mono のわずかに変更されたバージョンです。

エディターでは問題なく動作しますが、実行時の iOS デバイスでは、シリアル化を試みる最初のメンバーで失敗します。例外の --aot-only フラグに注意してください。Unity は基本的に Mono の aot 機能を介して ARM アセンブリを構築していると思いますが、内部で何をしているのかはわかりません。

IRC では、これらの型の変数を前もって宣言することができ、コンパイラが実行時にそれらを JIT する必要がないことが提案されました。素晴らしいアイデアのように思えますが、残念ながらこれらは内部ジェネリック型のようなものであり、コンパイラを偽造するために変数を宣言するために C# で何を記述すればよいかわかりません。誰かが上記のメッセージを解釈して、コンパイラが事前に知っておく必要があることを教えてもらえますか? これが起こらないようにするための他の戦略はありますか?ところで、これはエラーが発生しているクラスのトップです

これを解決するのを手伝ってくれた Mono と protobuf の専門家に感謝します! protobuf-net は、iOS や Android アプリに最適な、素晴らしく軽量なシリアライゼーションおよび RPC ワイヤ プロトコルであると思われるので、使用することを楽しみにしています。

0 投票する
3 に答える
756 参照

c# - モノタッチクラッシュディクショナリFirstOrDefault()タイプInitializer PredicateOf

2週間の開発の後、私は最初にiPhoneでアプリを試しましたが、次の行でクラッシュします(シミュレーターで完全に機能します)。

私は次のコードを持っています:

誰かが何をすべきか考えていることを願っています。

ありがとう