問題タブ [dynamic-execution]
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.
.net - .NET JIT コンパイラをだまして別のメソッドを実行させる方法はありますか?
私のアプリケーションが (x86) 命令をメモリに発行したり、ページを実行可能にしたりしているとします。JIT されていないメソッドのメソッド スタブを、発行された命令ストリームを指すように変更する方法はありますか?
例えば:
任意の処理を行う x86 命令ストリームをメモリ内に作成したとします。さらに、'int Target()' メソッドがあるとします。まだ呼び出していないため、コンパイルされていません。次の方法はありますか?
- ターゲットのスタブへのポインタを取得します
- 発行された命令ストリームを指すようにします。
.NET のほぼすべてのセキュリティ機能が、このようなハイジャックを防止するように設計されていることを認識しています。しかし、たとえば、ホスティング API を介して可能でしょうか?
c# - メモリ内でコードを実行する方法は?
アセンブリ言語を(メモリ内で)機械語にコンパイルするコンパイラがあります。私のプロジェクトは C# .net にあります。スレッドでメモリを実行する方法はありますか? DEP はどのようにそれを防ぐことができますか?
c# - 所有者プロセスが終了したときにDLLを削除するにはどうすればよいですか?
データベース内のプリコンパイルされたコードからオンザフライで作成される.NETアセンブリDLLがあります。DLLファイルを作成し、それにデータを入れ、Assembly
クラスとともにロードし、プロセスが終了したときにそのDLLを削除する方法はありますか?
FILE_SHARE_DELETE
私の最初の考えは、フラグを付けて開き、ロードしAssembly.LoadFrom,
て、自動的に削除することでした。
LoadLibraryはFILE_SHARE_DELETE
フラグ付きのファイルを開きますが、DLLがまだメモリにマップされている場合、OSはファイルを削除しません。
したがって、外部の「ターゲットプロセスの終了後にこのファイルを削除する」実行可能ファイルを使用または開始せずにプロセスが終了したときにDLLを削除するにはどうすればよいですかAppDomains
(実行時にロードされる.NET DLLはユーザー入力に依存するため、これを行うには何らかのプロセスが必要になりますコミュニケーション、避けたい)。
python - Python:関数クロージャ環境を動的に設定する方法
関数を動的に宣言し、グローバル変数へのアクセスをラップしたい、または代わりに、どの変数がフリーであるかを定義し、フリー変数へのアクセスをラップしたい。
私は次のようなコードで遊んでいます:
これにより、次の出力が生成されます。
私が欲しいのは、どういうわけかx
私のdictのようなラッパーでアクセスをキャッチすることD
です。どうやってやるの?
すべてのグローバル変数(この場合)を事前に定義したくないのは、x
それらを遅延してロードできるようにするためです。
java - javaファイルの動的実行結果の取得
以下のメソッドを使用して、NewFile.java というファイルを実行しています。
行thisMethod.invoke(instance,(Object)m); NewFile.java を自動的に実行し、[存在する場合] 結果をコンソールに出力します。実行結果を文字列で取得できる方法はありますか
注意: (String) thisMethod.invoke(instance,(Object)m); として型キャストします。うまくいきませんでした..nullを返します。
java - 動的に実行するファイルが見つかりません
動的実行を使用していますが、パスを再確認したのにクラスが見つからないことがわかり、正しいことがわかります
これは私が使用している方法です
これは印刷します
ここ 1
ここ 2
ここ 3
ここ 4
クラスが見つかりません
ここ 5
メソッドに欠けているものはありますか
java - プラグインのインストール時に動的実行が機能しない
現在アクティブなファイルを実行する Eclipse プラグインを開発しています。私はこの方法を使用しています
しかし、「Eclipseアプリケーションを起動」[別のEclipseウィンドウでプラグインを実行]すると機能しますが、プラグインをEclipseにインストールすると機能しなくなります。問題はこの行にあります
Class thisClass = classLoader.loadClass("NewFile"); 実行するクラスが見つかりません
c++ - 動的並列処理を含むコードのコンパイルが失敗する
CUDA 5.5 と計算能力が 3.5 の NVDIA GeForce GTX 780 を使用して動的並列プログラミングを行っています。カーネル関数内でカーネル関数を呼び出していますが、エラーが発生しています:
エラー: __global__ 関数("kernel_5") から __global__ 関数("kernel_6") を呼び出すことは、compute_35 アーキテクチャ以上でのみ許可されます
私は何を間違っていますか?
azure - Exe ファイルにユーザー固有の情報を追加する方法
クライアント側(アプリケーション)とリンクするサーバー側(アプリケーション)にコードがあります。ユーザーは、exe (クライアント側アプリケーション) をダウンロードするためにサインアップします。サインアップから取得した情報を使用して、ユーザー (クライアント アプリ exe) を識別する一意の方法が必要です。
そのため、ダウンロード中にいずれかの情報を exe ファイルに添付する必要があります。
私が見つけた方法の 1 つは、「Portable Executable」を使用することです。
文字列データをexeに追加して、後で取得することはできますか?
exeをユーザー固有にする他の方法はありますか? または、ダウンロードしたexeと一緒にユーザー情報を追加することはできますか?
cpu - 順不同の命令実行: コミット順序は保持されますか?
一方で、ウィキペディアはアウトオブオーダー実行の手順について次のように書いています。
- 命令フェッチ。
- 命令キュー (命令バッファーまたはリザベーション ステーションとも呼ばれます) への命令ディスパッチ。
- 命令は、その入力オペランドが使用可能になるまでキューで待機します。その後、命令は、以前の古い命令の前にキューを離れることを許可されます。
- 命令は適切な機能ユニットに発行され、そのユニットによって実行されます。
- 結果はキューに入れられます。
- すべての古い命令の結果がレジスタ ファイルに書き戻された後でのみ、この結果がレジスタ ファイルに書き戻されます。これは、卒業または退職段階と呼ばれます。
同様の情報は、「Computer Organization and Design」の本にも記載されています。
プログラムを単純な順序どおりのパイプラインで実行しているかのように動作させるには、命令フェッチおよびデコード ユニットが命令を順番に発行する必要があり、依存関係を追跡できるようにし、コミット ユニットが結果をレジスタに書き込み、プログラムフェッチ順序のメモリ。この保守的なモードは in-order commit と呼ばれます... 現在、動的にスケジュールされたパイプラインはすべてin-order commit を使用しています。
したがって、私が理解している限り、命令の実行が順不同で行われたとしても、それらの実行の結果はリオーダーバッファに保存され、決定論的な順序でメモリ/レジスタにコミットされます。
一方で、最近の CPU はパフォーマンスの高速化のためにメモリ操作を並べ替えることができるという既知の事実があります (たとえば、2 つの隣接する独立したロード命令を並べ替えることができます)。ウィキペディアはそれについてここに書いています。
この不一致を明らかにしていただけますか?