Javascript 如何快速测量小于1ms的时间?

Javascript 如何快速测量小于1ms的时间?,javascript,node.js,express,logging,time,Javascript,Node.js,Express,Logging,Time,我刚刚开始研究名为Express的Web框架,我发现当Express渲染的网页被刷新时,linux控制台上会显示如下日志 GET / 304 20.768 ms - - GET /stylesheets/style.css 304 0.521 ms - - GET / 304 35.655 ms - - GET /stylesheets/style.css 304 0.796 ms - - GET / 304 33.824 ms - - GET /stylesheets/style.css 30

我刚刚开始研究名为Express的Web框架,我发现当Express渲染的网页被刷新时,linux控制台上会显示如下日志

GET / 304 20.768 ms - -
GET /stylesheets/style.css 304 0.521 ms - -
GET / 304 35.655 ms - -
GET /stylesheets/style.css 304 0.796 ms - -
GET / 304 33.824 ms - -
GET /stylesheets/style.css 304 1.023 ms - -
我了解到Javascript可以测量的最短时间是1ms(),比如Date()

我原以为日志是由Express本身显示的,所以我搜索了每个文件以查找日志中的单词,但没有找到这样的结果。我搜索了“304”、“ms”、“GET”作为关键字,但在我的项目目录(包括node_模块)中找不到任何内容

哪个文件、函数或模块显示日志

或者,有人知道javascript如何计算小于1ms的时间吗

我很抱歉我的英语不好。 谢谢你阅读我的问题

和是node.js中的两个选项

在查看node.js代码时,Express数据可能来自http库,并且似乎使用了
process.hrtime()

和是node.js中的两个选项


在查看node.js代码时,似乎Express数据可能来自http库,它似乎使用了
process.hrtime()

Express最常用的日志中间件是

根据morgan的,我们可以确定morgan从底层NodeJS函数获取纳秒精度的时间信息:

this._startAt = process.hrtime()
从中我们可以得到它的
process.hrtime()
从以下位置获取时间信息:


总之,纳秒精度时间是直接从操作系统中获取的,只要

Express最常用的日志中间件是

根据morgan的,我们可以确定morgan从底层NodeJS函数获取纳秒精度的时间信息:

this._startAt = process.hrtime()
从中我们可以得到它的
process.hrtime()
从以下位置获取时间信息:


总之,纳秒精度时间是直接从操作系统中获取的,只要

这些是对你的CSS文件的GET请求,在我看来是这样。这些是对你的CSS文件的GET请求,在我看来是这样。
uint64_t uv__hrtime(uv_clocktype_t type) {
  static clock_t fast_clock_id = -1;
  struct timespec t;
  clock_t clock_id;

  /* Prefer CLOCK_MONOTONIC_COARSE if available but only when it has
   * millisecond granularity or better.  CLOCK_MONOTONIC_COARSE is
   * serviced entirely from the vDSO, whereas CLOCK_MONOTONIC may
   * decide to make a costly system call.
   */
  /* TODO(bnoordhuis) Use CLOCK_MONOTONIC_COARSE for UV_CLOCK_PRECISE
   * when it has microsecond granularity or better (unlikely).
   */
  if (type == UV_CLOCK_FAST && fast_clock_id == -1) {
    if (clock_getres(CLOCK_MONOTONIC_COARSE, &t) == 0 &&
        t.tv_nsec <= 1 * 1000 * 1000) {
      fast_clock_id = CLOCK_MONOTONIC_COARSE;
    } else {
      fast_clock_id = CLOCK_MONOTONIC;
    }
  }

  clock_id = CLOCK_MONOTONIC;
  if (type == UV_CLOCK_FAST)
    clock_id = fast_clock_id;

  if (clock_gettime(clock_id, &t))
    return 0;  /* Not really possible. */

  return t.tv_sec * (uint64_t) 1e9 + t.tv_nsec;
}