問題タブ [jit]
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.
c# - .NETのJITデバッガーでオブジェクトのメンバーを「検索」する
私は現在の会社では比較的新しい従業員なので、ソフトウェアとアーキテクチャの使い方を学ぶという点では、まだ「消防ホースから飲んでいる」のです。ユニットテストを書いているときに、いくつかの非常に大きなオブジェクトを扱っていることに気づきました。たとえば、「SavedOrder」について話し合うために、探している特定のデータの場所を見つける必要があります。
私が抱えている問題は、各SavedOrderが、その継承とメンバー(メンバーを持っている、メンバーを持っているなど)の内部のどこかに、私が探しているデータを持っていることを知っていることです。にとって。
今のところ、私は自分の時計を無意識に拡張し、オブジェクトをマウスで動かして、探しているものを見つけられることを願っています。このオブジェクトが「タイプA」または値「SomeEnum.SomeValue」の何かを持っているかどうかを見つけるために使用するプラグイン/テクニックを知っている人はいますか?
編集:すべての良い入力、まだ私の目標を完全に解決するものは何もありません。オブジェクトブラウザ(オブジェクトブラウザとリフレクター)は、各オブジェクトのメンバーを適切に参照しますが、ポイントAをポイントDにリンクするという目標では、ポイントAをポイントBに、またはDをCに移動するのに役立ちます。
ソリューションを最もよく表す疑似c#再帰アルゴリズムは次のようになると思います。
誰が知っている、多分不可能です。
python - Psyco が多くのメモリを使用するのはなぜですか?
Psycoは Python に特化したコンパイラです。ドキュメントの状態
Psyco は大量のメモリを使用する可能性があり、使用する予定です。
このメモリ使用量の主な理由は何ですか? 一般に、かなりのメモリ オーバーヘッドは JIT コンパイラの機能ですか?
編集:これまでの回答に感謝します。有力候補は3人。
- それぞれがメモリを必要とする複数の特殊なブロックの書き込み
- オンザフライでソースをコンパイルすることによるオーバーヘッド
- 動的プロファイリングを行うのに十分なデータをキャプチャすることによるオーバーヘッド
問題は、メモリ使用量の支配的な要因はどれかということです。私は自分の意見を持っています。しかし、実際に正しい答えを受け入れたいので、報奨金を追加しています! メモリの大部分がどこで使用されているかを誰かが実証または証明できる場合は、それを受け入れます。それ以外の場合、コミュニティが投票した人は、バウンティの最後に自動的に承認されます.
java - JVM で JIT コンパイルされたコードを表示するには?
JVM で JIT によって生成されたネイティブ コードを確認する方法はありますか?
jvm - SunのHotSpotにはオブジェクトインライン最適化がありますか?
オブジェクトのインライン化などの最適化があることをどこかで読みました。2つのオブジェクトが同じライフタイムスコープを持ち、それらの間に多くの読み取りがある場合、2つのオブジェクトを一緒に連結します。また、GCは、それらを1つの世代から別の世代に移動するための1つとして扱います。
しかし、私はjava.sun.comでこの最適化について言及しておらず、HotSpotにそれがあることを確認していません。
c# - メモリ内でコードを実行する方法は?
アセンブリ言語を(メモリ内で)機械語にコンパイルするコンパイラがあります。私のプロジェクトは C# .net にあります。スレッドでメモリを実行する方法はありますか? DEP はどのようにそれを防ぐことができますか?
c# - プリコンパイルされた ASP.NET Web サイトでの '% Time in JIT' が高く変動する
プリコンパイル済み(更新可能)の 150 個の *.dll ASP.NET Web サイトで、' % Time in JIT ' が非常に高く (> 60%) なり、アプリケーションがウォームアップした後も長く変動する (すべての機能にアクセス)、新しいアセンブリを生成する可能性のあるアプリの再起動やファイルの変更はありませんか?
すべてのアセンブリに対して生成されたマシン コードは、そのアプリ ドメインの期間中、再利用されることが予想されます。キャッシュされるマシンコードの量に有限のサイズはありますか? 同じアプリ ドメインで同じアセンブリを再 JIT する必要があるのは、どのようなシナリオですか? それとも、必然的に新しいアセンブリが生成されているのでしょうか? メモリ不足などの要因は、このパフォーマンス カウンターに影響しますか?
参考:
c# - .NET Framework を使用しない C#
C# のような最新のクロスプラットフォーム プログラミング言語で、API 呼び出しなどを使用して高速なネイティブ アプリケーションを作成するのは素晴らしいことですよね。たとえば、IT 担当者が他のコンポーネントを必要としないもののインストールを支援するための単純なユーティリティを、簡単で最新のプログラミング言語で作成したい場合はどうでしょうか? または、3D ゲームを作成する場合は、高速である必要があり、JIT では速度が低下するだけです...
なぜ、なぜそれができないのですか?なぜこれらのネイティブの最新プログラミング言語がないのでしょうか?
.net - 順次変更されるだけのインデクサーのJIT最適化
私はこの状況で何が起こるかについて興味があります:
これがメソッドで使用される唯一の方法であると仮定するとi
、JITはi
それを取り除き、リテラル値に置き換えますか?
c# - const ローカル変数を使用すると、実行時に利点がありますか?
それらが (コンパイラ エラーの調子で) 変更できないことを保証する以外に、JIT は const ローカルの最適化を行いますか?
例えば。
java - 仮想関数の境界を越えてJavaをインライン化するにはどうすればよいですか?
Java が C++ よりも高速であるかどうかについての資料を読んでいて、次の引用に出くわしました。
JIT は仮想関数の境界を越えてインライン化できるため、Java は C++ よりも高速になる可能性があります。
これは何を意味するのでしょうか?C ++はvtableを介して関数を呼び出さなければならないのに対し、JITは仮想関数呼び出しをインライン化できるということですか(おそらく実行時情報にアクセスできるため)?