問題タブ [nanotime]
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.
android - Android で Audiorecord のハードウェア タイムスタンプを受け取るにはどうすればよいですか?
AudioRecord class
がバッファの読み取りを行ったときのタイムスタンプを取得する必要があります。ミリ秒単位で時間を追跡する必要があります。バッファを読み取った後にタイムスタンプ取得を追加しようとしましたが、次のバッファを受信すると、取得にかかる時間が大きく変動する可能性があります。オーディオが録音された時間をコールバックから受け取る方法はありますか?
私が現在試みていることです。
c++ - C++ でのタイミングのナノ秒精度
C++でナノ秒の精度を得る方法はありますか? Java のナノ秒タイマー ( System.nanotime )に相当するもの。
java - System.nanoTime() 差分は 0 です
メソッド呼び出しの実行にかかる時間を試して判断するための次のコードがあります。
特定の Android デバイス (Xperia P) で実行すると、この diff (終了 - 開始) はほとんどの場合 0 になります。
これの理由は何ですか?このメソッドの実行と戻りにかかる時間を測定するためのより良い方法はありますか?
*他の Android デバイスの動作は異なることに注意してください
java - Java System.nanoTime() 対 System.currentTimeMillis()。なぜそれらは異なる出力を持っているのですか?
次の Java コードがあるとします。
それはの出力を与えました
両者には少し違いがあると思っていましたが、間違っていました。
なぜそれがそのように振る舞ったのか、あなたは何か考えがありますか?
java - ナノタイムから秒への変換を正しく表示する方法
私は 8 パズルを解くための BFS アルゴリズムを持っています。プロジェクトの要件の 1 つは、最も浅い解を見つけるのにかかる時間を出力することです。
System.nanoTime()
アプリケーションの実行時間を追跡するために使用しています。これは、指定されたパズルの大部分を 1 秒未満で解決できるためです。
私が抱えている問題は、私nanoTime
が秒に変換するときに、奇妙な形式で表示されることです。
次のコードが使用されます。
これにより、次の出力が生成されます。
また、フロートを使用して値を表現しようとしました。
おそらくフォーマット出力ステートメントを使用して、変換/表示するより良い方法を提供できる人はいますか?
私の質問を読んでくれてありがとう。
vxworks - タイマー機能の持続時間を測定
1uSごとに呼び出したいタイマー関数(ポーリング用)がありますが、他のタスクを実行するのに十分な時間を確保したいので、この関数の実行にかかる時間を測定したいと思います。clock_gettime()
そのために、関数の最初と最後に使用できると思いました。今私の問題は、返される2つの時間が常に同じであり、関数が1ナノ秒未満で実行されるとは信じていないことです-それは不可能な期間です。CPU のクロックは 800MHz です。私のコード:
私は何を間違っていますか?開始時間と停止時間は常に同じです...
java - Java nanoTime によるマルチスレッド化
現在、Java を使用してマルチスレッド プログラムをプログラミングしています。いくつかの時点で、さまざまなスレッドがアクションをログに記録し、私はnanoTime
これを使用しています。すべてのスレッドには独自のログ ファイルがあり、最後にそれらをマージし、時間 ( ) に基づいて並べ替えて、nanoTime
何が起こったかを確認します。問題は、次のような誤った動作をしているということx
ですvolatile
。変数は次のとおりです。
nanoTime
そのため、実際には物事のタイミングが正しくないように思えます。nanoTime
ドキュメントには次のように書かれています。
このメソッドによって返される値は、Java 仮想マシンの同じインスタンス内で取得された 2 つのそのような値の差が計算された場合にのみ意味があります。
同じプロセスによって作成されたスレッドが異なる JVM で実行される可能性はありますか? これは の誤った動作を説明しますがnanoTime
、それでもあまり意味がありません。何か案は?
java - 結果がより近くならないのはなぜですか? (私は1回だけ試しています)
特定の平方根アルゴリズムの時間を計るプログラムを書きました
このプログラムをサイエンス フェアのボードに載せる必要があるため、100/1000 の試行はしたくないので、ベンチマークなどを使用してプログラムを複雑にしたくありません。大きく変化します。たとえば、一度私が得た
Newton Iteration: 0.466200 ミリ秒 (8 回の繰り返し) Midpoint Method: 21.090700 ミリ秒 (330 回の繰り返し) Secant Method: 0.134500 ミリ秒 (11 回の繰り返し)
別の時間に、ニュートンの反復を取得しました: 0.550700 ミリ秒 (8 回の反復が行われました) 中間点法: 23.168400 ミリ秒 (330 回の反復が行われました) セカント法: 0.130400 ミリ秒 (11 回の反復が行われました)
今、私はニュートン反復を取得しています: 0.469500 ミリ秒 (8 回の反復が行われました) 中間点法: 22.437700 ミリ秒 (330 回の反復が行われました) セカント法: 0.189200 ミリ秒 (11 回の反復が行われました)
彼らは単にあまり近くにありません。これはなぜですか?私は毎回同じことをしていますが、実行するたびに1回しか実行していないため、Javaは最適化できない可能性があります。
では、どのように進めるのが最善でしょうか? 考えられる解決策がいくつかあります。
トライアルを1回だけ行う
- 利点: Java は最適化できません
- 短所: あまり一貫性がない (上記のように)
1000回の試行を行う
- 利点: 一貫性が高い
- 欠点: Java は最適化するため、結果が不正確になります。
1000回試行しますが、randを使用して毎回平方根を近似する値を変更します
- 利点: かなり正確、最適化なし
- 短所:ランダムのため、答えは毎回異なります
969 回試行しますが、毎回 2、3、...、1000 の平方根を計算します (1、4、..、961 を除く)。
- 利点: かなり正確、最適化なし
- 欠点:
私は最後の方に傾いています。これは良い考えですか?
java - エポックと現在の時間の時差を見つける
2 つの時間値の 1 つが System. currentTimeMillis() つまり、それthe difference, measured in milliseconds, between the current time and midnight, January 1, 1970 UTC
は System.nanoTime() を使用してフェッチされますcurrent value of the running Java Virtual Machine's high-resolution time source, in nanoseconds
。
どうすればいいですか?