問題タブ [gettimeofday]

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 に答える
389 参照

macos - x86_64 での OSX gettimeofday syscall が機能しないようです

64 ビット コードを使用して、syscall 命令を介して gettimeofday を呼び出しています。

結果を返すことができず、Dtrace を介して呼び出しがエラーなしで行われたと通知されていますが、呼び出しから返されたレジスタはガベージです。

私は次のことを行います:

戻り時に rax は 0 でも -1 でもなく、バッファーはデータを取得しません。

誰かがこれをチェックして、彼らが実際の電話を受けることができるかどうかを確認してください. 何が起こっているのかわかりません。

よろしくお願いします

クリス

psこれは私が試したサンプルコードです.0以外は何も返しません.

0 投票する
0 に答える
168 参照

linux - ユーザー空間での gettimeofday 共有メモリアクセスについて。

ユーザーランドエミュレーターでgettimeofdayにアクセスするための1つのアプローチを実装しようとしており、可能なすべてのポインターが必要です。カーネル空間からユーザー空間 (64 ビット) に読み取り専用領域をマップしようとしています。ユーザー空間では、オーバーヘッドをあまりかけずに gettimeofday () 値を直接ポーリングして読み取ることができます。これは VSYSCALL/VDSO 実装に似ていますが、ここでは、関数ポインターまたは *gettimeofday ラッパーを使用する代わりに、ユーザー空間からメモリ (VDSO 共有ページ) の内容を取得する専用プログラムを 1 つ用意しようとしています。

現在の流れ:

エミュレータ -> Gettimeofday -> トラップ -> Emulate() -> GLIBC -> 時間を更新 struct() -> エミュレータに戻る

達成しようとしています: Kernel/TSC/TImer -> update time_memory();

エミュレータ -> Gettimeofday -> read time_memory();

まず、このようなことを考えることがどれほど論理的かは 100% 確信が持てませんが、それでも何らかの方法で実行可能だと感じています..

以下のリンクに出会いましたが、さらに先に進むには、さらに多くの (または) 考えられる情報が必要です。

http://lwn.net/Articles/9266/

プラットフォーム: Linux アーチ: PowerpC カーネル: 2.6.34

前もって感謝します。

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

php - PHP uniqid() のソースコードに関する質問

PHP ソース コード関数 uniqid() には、次の C コードがあります: (短縮するためにいくつかの型を削除しました)

批判はさておき、彼らは 64 ビットのタイムスタンプを生成しようとしています。

0xF423FはおそらくCLOCKS_PER_SEC - 1 (CLOCKS_PER_SEC は 10 進数の 1000000) です。

しかし、この0x100000はどこから来て、ビットごとの代わりにモジュラスを使用する理由は何ですか?

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

c++ - C ++ 11で同等のgettimeofday()は何ですか

おそらく重複していますがgettimeofday()、c ++ 11で同等のものは何ですか?

timestampJava / Python と同様に、マイクロ秒で64 ビットを取得しようとしています。

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

c++ - 特定の方法でクロノタイムを取得する

私は次のCコードを持っています:

これは、32ビットのタイムスタンプと32ビットの「何か」、おそらくマイクロ/ナノ秒を単一の64ビット整数に結合します。

C++11 chrono で書き直すのは本当に苦労しました。

これは私がこれまで行ってきたことですが、これは間違った方法だと思います。

重要な注意- 最初の 32 ビットが「有効な」タイムスタンプであることだけを気にします。

2 番目の 32 ビットの「部分」は、ナノ秒またはマイクロ秒のいずれでもかまいません。この関数を 2 回連続して呼び出すと、異なる 2 番目の「部分」が得られる限り、すべて問題ありません。

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

linux - eglibc: 稼働時間をミリ秒単位で取得する

カーネルログと同じ形式でログ出力を書きたい:

タイムスタンプには、カーネル時間と同じ時間参照が必要です。これは、ログメッセージがカーネルで行われると同時に発行される場合、タイムスタンプは同じ値を持つ必要があることを意味します。

には定義されclock_gettimeていないクロックの開始点があります。したがって、すべてのプログラムのタイムスタンプは、同時に作成された場合でも異なる値になります。

使用gettimeofdayすると、定義上一致しない Unix エポック以降の時間が取得されます。

この関数localtime()は稼働時間を返しますが、粒度は秒単位ですが、もっと必要です...


更新それはclock_gettime(CLOCK_REALTIME, &ts)私が望むことをするべきだと思われます...しかし、eglibcCLOCK_MONOTONIC代わりに戻ってくるようです。

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

c - C : gettimeofday() を使用すると、startingTime がendingTime よりも大きいのはなぜですか?

whileループで計算時間を計測したい。

私はC99バージョンでプログラミングしています。

私のコードは以下の通りです:

次に、結果は以下のとおりです。

計算時間: -76716

エンディング : 334481 、スタート 411197

ご覧のとおり、開始は終了よりも重要です...

何が欠けているのか完全には理解できません...

この状況を知っている人はいますか?

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

c - 大きなファイルの書き込み中に帯域幅の読み取り値が増加する

を使用して、クラスで 2 台の外付け HDD の帯域幅を測定してきましたgettimeofday

驚くべきことに、何度か繰り返した後 (実行ごとに 3 回の測定を 3 回実行)、両方の HDD で 2500MB のファイルを書き込む方が小さいファイルを書き込むよりも高速であることがわかりました。

帯域幅チャート

これが私たちの C コードです。いくつかのチャートを生成するために Python スクリプトから呼び出されます。

先生は知りませんでしたので、ここで質問します。これが起こる理由はありますか?