問題タブ [time-measurement]
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.
python - Python 速度テスト - 時間差 - ミリ秒
コードのセクションをスピードテストするためにPythonで2回比較する適切な方法は何ですか? API ドキュメントを読んでみました。timedelta のことを理解しているかどうかはわかりません。
これまでのところ、私はこのコードを持っています:
c - ARM Cortex-A8プロセッサでプログラムの実行時間を測定するにはどうすればよいですか?
私はi.MX515と呼ばれるARMCortex-A8ベースのプロセッサを使用しています。LinuxUbuntu9.10ディストリビューションがあります。私はCで書かれた非常に大きなアプリケーションを実行しており、gettimeofday();
関数を使用してアプリケーションにかかる時間を測定しています。
この方法は、アプリケーションのどのブロックにどのくらいの時間がかかっているかを確認するのに十分でした。しかし、今では、コードを非常に徹底的に最適化しようとしています。gettimeofday()メソッドを使用して時間を計算すると、連続する実行(最適化の前後の実行)の間に多くの変動が見られるため、できません。実際の実行時間を決定するため、したがって私の改善の影響を判断します。
誰かが私に何をすべきか提案できますか?
サイクルカウンター(Cortex-M3のARM Webサイトで提案されているアイデア)にアクセスすることで、Cortex-A8のタイマーレジスタにアクセスするために実行する必要のある手順を示すコードを誰かに教えてもらえますか?
この方法があまり正確でない場合は、いくつかの代替案を提案してください。
ありがとう
フォローアップ
フォローアップ1:Code Sorceryで次のプログラムを作成しました。実行可能ファイルが生成され、ボードで実行しようとすると、次のメッセージが表示されました-不正な指示メッセージ:(
フォローアップ2:私はサポートのためにフリースケールに手紙を書きました、そして彼らは私に次の返事とプログラムを送り返しました(私はそれからあまり理解していませんでした)
これが私たちが今あなたを助けることができるものです:私はあなたにUARTを使用してストリームを送信するコードの例を添付して送信します、あなたのコードから、あなたは正しくMPUを初期化していないようです。
silverlight - 音にディレイを加える
サウンドを再生するスレッドとサウンドを録音するスレッドの 2 つのスレッドで構成されるアプリケーションを Silverlight で作成します。録音されたものは、再生されたものに周囲のノイズを加えたものになります。
問題は、Silverlight が再生するサウンドに遅延を追加することです。この遅延がどの程度か分からないため、何かを録音したときに何が再生されたのか正確にはわかりません。
この遅延に関する詳細情報はどこで入手できるか知っていますか (どの程度か、一定か、アプリケーションまたはコンピューターを再起動すると変化するか、別のコンピューターでも同じか、...)、またはどうすればわかりますか? 1ミリ秒の精度で測定?
linux - ubuntu linuxでの論理時間と物理時間
私はこのように2つのイベント間の物理的な時間を測定しています:
しかし今、スレッドが実際に使用している論理時間を測定する方法が必要です。つまり、理論的には、他のスレッドやシステムおよびカーネルロジックの実行に費やされた時間を差し引いた物理時間でなければなりません。
私はこれがそれを行う方法だと思いました:
しかし、いくつかの測定を行ったところ、2 つの問題に気付きました。
1) 一部の測定値では物理時間よりも大きく、これは正しくありません (つまり、特定のループでは、物理時間は 0.2495.. であり、「論理」(clock() で測定) は 0.27 になります。より小さい測定値の場合は、次のようになります)。ゼロに切り上げるだけで、2番目の問題につながります...)
2) 得られた時刻は、gettimeofday によって返される時刻よりもかなり粗いようです。
Linuxでローカルスレッド時間を測定するより良い方法はありますか?
java - Javaでマイクロ秒の解像度で時間を測定するための最も効率的で「安価」で正確な方法は何ですか?
私はASMJavaバイトコードインストルメンテーションを使用しており、私の目標は変数への各アクセスの時間を測定することです。
**時間とログを測定します**
**可変アクセス**
マイクロ秒の解像度を探しています。正確であるため、十分に「安価」である必要があります(つまり、時間を取得するのに10ミリ秒かかる関数やライブラリは必要ありません)。
私はSystem.NanoTime()
(多すぎて、費用がかかりすぎて)そしてCalendar
(緩すぎて)試しましたが、より良い代替案を探しています。
c# - c# Thread.Sleep によるロックが機能しない
次のコードがあります。Windows Server 2008 では、プログラムは正しく、期待どおりに実行されます。10個の異なるIDを出力します。
しかし、Windows Server 2003 で実行すると、プログラムが正しくありません。10 個の ID が出力されますが、一部の ID が重複しています。ロックが効かないようです。
を設定Thread.Sleep(500)
すると、Windows Server 2003 で正しく動作します。
c++ - コードの実行にかかる時間を測定する方法は?
特定のコードにかかる時間を測定したいとします。そのために、私は通常、このようなことをします
プログラムがマルチスレッド化されていて、測定したい部分でコンテキストの切り替えが発生した場合はどうなりますか? 他のスレッドで費やされた時間を除いて、コードの実行にかかる時間をどのように測定しますか? それを行うツールがあったとしても、それがどのように行われているかを知りたいです。
linux - * nixで共有ライブラリなしでプロセスメモリを計算する方法は?
私は単純なプログラムを持っています例えばC++で
そして私はGNU時間でメモリ使用量を計算しようとしています。しかし、「時間」出力(私の形式では問題ありません)では、メモリ内のプロセスの最大サイズは、printf関数(std :: coutの呼び出し)を持ち、3.5Mbに等しいlibc.soで計算されます。
共有ライブラリをロードせずにプロセスメモリを計算する方法はありますか?
UPDいくつかの理由により、測定したいメモリを実行している間は実行できません。私は外側のラッパーツールでそれを行う方法があるかどうか尋ねています(のようtime
に)
c# - マルチスレッド環境での実行時間の測定
Task
非同期実行に (TPL) オブジェクトを使用するアプリケーションがあります。
メイン スレッドは、トリガー (何らかの TCP パケット) を待ってから、いくつかのタスクを実行します。私がやりたいのは、タスクに費やされた時間を測定することです。
コードを見てください。開始/停止Generator
で囲まれた長い操作 ( ) があります。Stopwatch's
これが問題です。ストップウォッチは の瞬間に使用DateTime.UtcNow.Ticks
し、 の瞬間にStart()
再び使用しStop()
ます。次に、これら 2 つを減算して経過時間を取得します。
Generator
問題は、(シングルスレッドシステムの) 他のスレッドが、 (コードから)GenerateIntervals()
長い操作を実行している間に、ある程度のプロセッサ時間を取得できることです。つまり、ストップウォッチによって記録された経過時間には、Generaor.GenerateIntervals()
時間だけでなく、その間に他のスレッドがジョブを実行した時間も含まれます。
タイムシェアリングメカニズムの結果として他のスレッドからの実行時間を含めずに、あるメソッドがどれだけのプロセッサ時間を要したかを正確に知る簡単な方法はありますか?
c - ハードウェア カウンターを使用して ARM Cortex-A8 での実行時間を測定する
Exynos 3110 プロセッサ (1 GHz シングルコア ARM Cortex-A8、たとえば Nexus S で使用) を使用しており、特定の機能の実行時間を測定しようとしています。Nexus SでAndroid 4.0.3を実行しています。次の方法を試しました
[1] ARM Cortex-A8 プロセッサでプログラムの実行時間を測定する方法は?
カーネル モジュールをロードして、ユーザー モードでレジスタ値を読み取れるようにしました。次のプログラムを使用してカウンターをテストしています。
[1] によると、カウンタはクロック サイクルごとにインクリメントされます。scaling_governor をユーザー空間に切り替え、CPU 周波数を 1GHz に設定して、Android によってクロック周波数が変更されないようにしました。
プログラムを実行すると、1 秒のスリープが実行されますが、カウンターの値は、予想される 1e9 ではなく、~200e6 の範囲にあります。ここで欠けているプロセッサ固有のものはありますか? カウンタのクロック レートは、プロセッサのクロック レートと異なりますか?