問題タブ [rdtsc]
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.
assembly - アセンブリで rdtsc 関数を使用する
Ubuntu 12.04 を使用して x86 アセンブリ プログラムをプロファイリングしようとしています。rdtsc 関数を使用したいと思います。問題は、コメントによると、rdx でサイクル数を取得する必要があることですが、次のコードでは数値が高すぎます。
デバッガーで実行すると、サブ命令の後のレジスターで次の結果が得られます。
単純な命令に対して rdx のサイクル数が非常に多い理由がわかりません。rcx の数値は正しいですか? それも高くないですか?
前もって感謝します
assembly - rdtsc 命令の実行に必要なクロック サイクル数をカウントするにはどうすればよいですか?
unsigned long long が eax/edx に格納されることは知っていますが、1 つの rdtsc 命令を実行するのに必要なクロック サイクル数を調べるにはどうすればよいでしょうか?
編集:このようなものは機能しますか?
.globl rdtsc
rdtsc:
rdtsc
movl %eax, %ecx
movl %edx, %ebx
rdtsc
subl %ecx, %eax
subl %ebx, %edx
戻る
c - rdtsc への未定義の参照
私は木を作成するコードを書いており、木を作成するさまざまな方法を試しています。ただし、rdtsc を適切に機能させることはできないようです。
これが私のコードです:
上記のすべての関数が処理されていると仮定します (もちろん rdtsc は別として)。
コンパイルしようとすると、次のエラーが発生します。
この未定義の参照エラーが発生する理由はありますか?
c++ - C ++からx86_64のCPUサイクルカウントを取得するにはどうすればよいですか?
最新のCPUサイクルカウントを取得するためのCコードを含むSOに関するこの投稿を見ました。
C / C ++Linuxx86_64でのCPUサイクルカウントベースのプロファイリング
このコードをC++で使用する方法はありますか(WindowsおよびLinuxソリューションを歓迎します)?Cで書かれていますが(そしてCはC ++のサブセットです)、このコードがC ++プロジェクトで機能するかどうか、そして機能しない場合はどのように翻訳するかについてはあまりわかりません。
x86-64を使用しています
EDIT2:
この関数が見つかりましたが、VS2010にアセンブラーを認識させることができません。何か含める必要がありますか?(私はウィンドウズに交換uint64_t
する必要があると思います....?)long long
EDIT3:
上記のコードから、次のエラーが発生します。
"エラーC2400:'opcode'のインラインアセンブラ構文エラー;見つかった'データ型'"
誰か助けてもらえますか?
c - x86 と x86_x64 で「rdtsc」を別々に使用する必要があるのはなぜですか?
rdtsc
プロセッサのタイムスタンプ カウンターの現在の値を、EDX と EAX の 2 つのレジスタにロードすることはわかっています。x86で取得するには、次のようにする必要があります(Linuxを使用していると仮定):
x86_x64 の場合:
何故ですか?誰か説明してくれませんか?
c - TLB ミスなどのメモリ特性によるパフォーマンスへの影響を示す rdtsc コード
rdtsc() を理解しようとしていたところ、 http: //www.mcs.anl.gov/~kazutomo/rdtsc.html から次のコードに出くわしました。 TLBミス、ページフォールト、ページスワップイン/アウトなどのメモリ特性によるパフォーマンスへの影響.".問題は、これがメモリ特性からパフォーマンスをどのように示しているかをよく理解していないことです.誰かがこれを少し説明できれば素晴らしいでしょう。