CGI-BBS > CGI > Perl > 1/10000秒までのシステム日付を取得したいのですが


カレッヂ
カレッヂ


質問者 とこ  投稿日 3/23(金) 07:52:30
こんにちわ。どうか教えてください。CGIを起動したときのシステム日付を1/10000秒まで取得したいのですが可能でしょうか?もし、可能でしたらその方法をどうか教えてください。よろしくお願いします。
回答者 まさ  [削除]  投稿日 3/23(金) 10:21:55
おそらく不可能でしょう。
1/1000秒程度ならば可能ですが、しかしこれもシステムに大きく左右されるので、ある
システムと限定したものしか作れません。汎用性を持たせるのは無理です。

だいたいそのような時間を何に使いたいのでしょうか?
そのような時間を使わないアルゴリズムを考えた方が現実的だと思います。

回答者 しあわせのツボ  [削除]  投稿日 3/23(金) 11:35:06
UNIX系のOSはそもそもプロセス制御が10ms(1/100秒)程度の単位なので、それ以下の数字は取得できたとしても意味を持たないと思います。どこかのディストリビューションが1ms以下のものを作っていると聞いたことがありますが…。
WinNT系では1ms単位で取得できたと思いますが、いずれにしても0.1msは無理ではないかと思います。
ハードディスクのアクセスがやっと10msを切るくらいですから…。

問題は、まささんのおっしゃるように、なぜそれが必要なのかですね。
質問者 とこ  [削除]  投稿日 3/23(金) 11:50:22
まささん、1/1000秒のシステム日付を取得するにはどうすればいいのでしょう。教えていただけますか?お願いします。
質問者 とこ  [削除]  投稿日 3/23(金) 11:59:09
ご質問についてですが、CGIから別々のサーバーにメールを送信します。この別々のメールが同一の人からの送信であることを確認しようとするためにシステム日付を使おうと考えました。
説明が苦手なもので、これで解って頂けたかどうか不安ですが・・・
回答者 しあわせのツボ  [削除]  投稿日 3/23(金) 13:20:06
1秒の間に何十もの利用が想定されるのですか?
もしそうだとして、通常は秒+プロセスIDを使うのがベターでしょう。
$uniqueid = time . $$;
とすれば、ほぼ確実に独自性のある値が取得できます。
回答者 まさ  [削除]  投稿日 3/23(金) 13:24:18
1/1000秒は日付ではなく、時間間隔だったと思います。
それはCで作ったものです。
具体的なコードは忘れてしまいました。
しかしそれはわたしが使用したマシンでないと正確な時間を測れません。
恐らくそのコードを渡しても精度は全く出ないでしょう。
そのマシン固有にチューニングするのに恐ろしく時間がかかった記憶があります。

>ご質問についてですが、CGIから別々のサーバーにメールを送信します。この別々
>のメールが同一の人からの送信であることを確認しようとするためにシステム日付を
>使おうと考えました。

何故これに1/10000もの精度が必要なのでしょうか?
1秒間に10000通もメールを送っているのでしょうか?
もっと根本的に考え直した方がいいと思いますよ。

質問者 ちょー  [削除]  投稿日 3/26(月) 11:30:08
まささん、しあわせのツボさん、本当にありがとうございました。ご返事が遅くなってすみません。

返信(回答)する


Web裏技