問題タブ [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.

0 投票する
1 に答える
1187 参照

android - Android で Audiorecord のハードウェア タイムスタンプを受け取るにはどうすればよいですか?

AudioRecord classがバッファの読み取りを行ったときのタイムスタンプを取得する必要があります。ミリ秒単位で時間を追跡する必要があります。バッファを読み取った後にタイムスタンプ取得を追加しようとしましたが、次のバッファを受信すると、取得にかかる時間が大きく変動する可能性があります。オーディオが録音された時間をコールバックから受け取る方法はありますか?

私が現在試みていることです。

0 投票する
2 に答える
5300 参照

c++ - C++ でのタイミングのナノ秒精度

C++でナノ秒の精度を得る方法はありますか? Java のナノ秒タイマー ( System.nanotime )に相当するもの。

0 投票する
1 に答える
826 参照

java - System.nanoTime() 差分は 0 です

メソッド呼び出しの実行にかかる時間を試して判断するための次のコードがあります。

特定の Android デバイス (Xperia P) で実行すると、この diff (終了 - 開始) はほとんどの場合 0 になります。

これの理由は何ですか?このメソッドの実行と戻りにかかる時間を測定するためのより良い方法はありますか?

*他の Android デバイスの動作は異なることに注意してください

0 投票する
4 に答える
6055 参照

java - Java System.nanoTime() 対 System.currentTimeMillis()。なぜそれらは異なる出力を持っているのですか?

次の Java コードがあるとします。

それはの出力を与えました

両者には少し違いがあると思っていましたが、間違っていました。
なぜそれがそのように振る舞ったのか、あなたは何か考えがありますか?

0 投票する
2 に答える
21407 参照

java - ナノタイムから秒への変換を正しく表示する方法

私は 8 パズルを解くための BFS アルゴリズムを持っています。プロジェクトの要件の 1 つは、最も浅い解を見つけるのにかかる時間を出力することです。

System.nanoTime()アプリケーションの実行時間を追跡するために使用しています。これは、指定されたパズルの大部分を 1 秒未満で解決できるためです。

私が抱えている問題は、私nanoTimeが秒に変換するときに、奇妙な形式で表示されることです。

次のコードが使用されます。

これにより、次の出力が生成されます。

また、フロートを使用して値を表現しようとしました。

おそらくフォーマット出力ステートメントを使用して、変換/表示するより良い方法を提供できる人はいますか?

私の質問を読んでくれてありがとう。

0 投票する
1 に答える
724 参照

vxworks - タイマー機能の持続時間を測定

1uSごとに呼び出したいタイマー関数(ポーリング用)がありますが、他のタスクを実行するのに十分な時間を確保したいので、この関数の実行にかかる時間を測定したいと思います。clock_gettime()そのために、関数の最初と最後に使用できると思いました。今私の問題は、返される2つの時間が常に同じであり、関数が1ナノ秒未満で実行されるとは信じていないことです-それは不可能な期間です。CPU のクロックは 800MHz です。私のコード:

私は何を間違っていますか?開始時間と停止時間は常に同じです...

0 投票する
2 に答える
1153 参照

java - Java nanoTime によるマルチスレッド化

現在、Java を使用してマルチスレッド プログラムをプログラミングしています。いくつかの時点で、さまざまなスレッドがアクションをログに記録し、私はnanoTimeこれを使用しています。すべてのスレッドには独自のログ ファイルがあり、最後にそれらをマージし、時間 ( ) に基づいて並べ替えて、nanoTime何が起こったかを確認します。問題は、次のような誤った動作をしているということxですvolatile。変数は次のとおりです。

nanoTimeそのため、実際には物事のタイミングが正しくないように思えます。nanoTimeドキュメントには次のように書かれています。

このメソッドによって返される値は、Java 仮想マシンの同じインスタンス内で取得された 2 つのそのような値の差が計算された場合にのみ意味があります。

同じプロセスによって作成されたスレッドが異なる JVM で実行される可能性はありますか? これは の誤った動作を説明しますがnanoTime、それでもあまり意味がありません。何か案は?

0 投票する
1 に答える
140 参照

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 を除く)。

    • 利点: かなり正確、最適化なし
    • 欠点:

私は最後の方に傾いています。これは良い考えですか?

0 投票する
2 に答える
881 参照

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

どうすればいいですか?