Javascriptを使って、どんなWEBアプリケーションでも組める様になってきました。
Nodejsを使って、サーバーサイドJavascriptとく合わせる事ができると、もはやネットワークビジネスは無敵です。
ただ、その先にサーバー管理などのスキルも必要になり、pythonやrubyなども覚えなければならなくなりますが、その領域になったプログラマーは、かなりの上級で、プログラミングを仕事にするということは、遊びながら仕事をしている感覚になるでしょう。
そんな僕もまだまだわからないことがたくさんあり、本日仕事の作業をしながら調べごとをして初めて知った内容があったので、
今更ながら、Javascriptの日付操作の中で、あまり扱わないミリ秒を取得したり操作したり、データを何に使うのかを検証してみたいと思います。
ミリ秒の取得方法色々
1. Date関数を使って取得
(+new Date())
> 1565956923228
この手法は、僕が最も多く活用する技ですが、それにはワケがあって、通常にDate()として実行するよりも若干ですが、スピードが早いというベンチを昔取ったことがあり、それ以降常用するようにしています。
この結果の数値の下3桁が、ミリ秒に当たります。
わかりやすくすると、以下のようにするといいでしょう。
(+new Date())/1000
> 1565957080.554
最初の数値は、UNIXタイムと言われる数値で、1900年からの秒数を表しています。
2. now()関数で取得
Date.now()
> 1565957655807
上記の結果と同じものが出力されます。
単純に上記のショートカットコマンドと考えてもいいですが、2パターンの書き方を覚えておくと助かる事もあるかもね・・・
上記でも書きましたが、+記述した方が、処理速度は早いようです。
おそらく、now()プロパティがくっついてる分、処理が増えてるからでしょうね。
getTime()を使用
new Date().getTime()
> 1565958458812
さらに類似ですが、Date関数でgetDate()と同じ要領で取得する方法です。
似たような記述がたくさんあるので、どれを使えばいいか迷うことがありますが、Date関数をインスタンスで使う場合は、このやり方のほうがスマートなプログラムが書けるので、これも割とよく使う方法ですね。
4. performance関数を使う
performance.now()
> 730496.1349999649
あまり使わない"performance"関数ですが、気になる人は、リファレンスページを見て学習しておきましょう。
https://developer.mozilla.org/ja/docs/Web/API/Performance
基本的にはページのパフォーマンスを抽出する関数なのですが、サンプルのようにnow()プロパティで、ミリ秒の取得が可能です。
これも、整数の下3桁がミリ秒になるのですが、扱いが少しめんどくさそうですね。
しかも、環境に応じて桁数なども変わってくるので、あまり実践では使えないかもです。
javascriptのミリ秒って何に使うの?
秒をさらに3桁も掘り下げたミリ秒は、何かの処理を行った時の処理時間の計測に使われる場合が多いでしょう。
Googleの検索結果は1秒高速化する毎に、会社の売上げ(アドワーズ等の)がサラリーマンの年収よりも多く変動するため、G社では、高速化する処理プログラムに社内懸賞金を発行しているという噂を聞いたことがありますが、そこでは秒単位ではなく、ミリ秒単位でのやり取りがされていることは容易に想像できますね。
あと、WEBサービスのタイムスタンプで、アクセスが集中するようなサイトでは、ミリ秒をタイムスタンプにつけて、ユーザーのユニーク値をより細かく分析できるようにするパターンもあります。
少しグレー領域である。「ブラウザフィンガープリント」というユーザーの個別識別子発行の際は、ミリ秒+IPアドレス+その他端末識別子などを個別に発行しているケースが多いようです。
身近なところでは、Googleの識別子が、ブラウザの開発モードで読み取ることができますが、似たようなポリシーになっていることが確認できますね。
やはりデジタルの世界では、ミリ秒での管理が必要なケースが多いようなので、プログラマー業の人は、こうした処理を避けずにやりましょう。
0 件のコメント:
コメントを投稿