v8::Local ResourceProfiler::_toJSON()

in src/ResourceProfiler.cc [56:87]


v8::Local<v8::Object> ResourceProfiler::_toJSON(const uv_rusage_t& usage) {
  auto resJson = Nan::New<v8::Object>();

  double userTime = ((double)(usage.ru_utime.tv_sec * 1e3) +
                  (double)(usage.ru_utime.tv_usec / 1e3));
  double sysTime = ((double)(usage.ru_stime.tv_sec * 1e3) +
                  (double)(usage.ru_stime.tv_usec / 1e3));
  Nan::Set(resJson, Nan::New("ru_utime").ToLocalChecked(), Nan::New<v8::Number>((double)userTime));
  Nan::Set(resJson, Nan::New("ru_stime").ToLocalChecked(), Nan::New<v8::Number>((double)sysTime));

  Nan::Set(resJson, Nan::New("ru_msgsnd").ToLocalChecked(), Nan::New<v8::Number>((double)usage.ru_msgsnd));
  Nan::Set(resJson, Nan::New("ru_msgrcv").ToLocalChecked(), Nan::New<v8::Number>((double)usage.ru_msgrcv));
  Nan::Set(resJson, Nan::New("ru_nsignals").ToLocalChecked(), Nan::New<v8::Number>((double)usage.ru_nsignals));

  Nan::Set(resJson, Nan::New("ru_inblock").ToLocalChecked(), Nan::New<v8::Number>((double)usage.ru_inblock));
  Nan::Set(resJson, Nan::New("ru_oublock").ToLocalChecked(), Nan::New<v8::Number>((double)usage.ru_oublock));

  Nan::Set(resJson, Nan::New("ru_maxrss").ToLocalChecked(), Nan::New<v8::Number>((double)usage.ru_maxrss));
  Nan::Set(resJson, Nan::New("ru_ixrss").ToLocalChecked(), Nan::New<v8::Number>((double)usage.ru_ixrss));
  Nan::Set(resJson, Nan::New("ru_idrss").ToLocalChecked(), Nan::New<v8::Number>((double)usage.ru_idrss));
  Nan::Set(resJson, Nan::New("ru_isrss").ToLocalChecked(), Nan::New<v8::Number>((double)usage.ru_isrss));

  Nan::Set(resJson, Nan::New("ru_nvcsw").ToLocalChecked(), Nan::New<v8::Number>((double)usage.ru_nvcsw));
  Nan::Set(resJson, Nan::New("ru_nivcsw").ToLocalChecked(), Nan::New<v8::Number>((double)usage.ru_nivcsw));

  Nan::Set(resJson, Nan::New("ru_minflt").ToLocalChecked(), Nan::New<v8::Number>((double)usage.ru_minflt));
  Nan::Set(resJson, Nan::New("ru_majflt").ToLocalChecked(), Nan::New<v8::Number>((double)usage.ru_majflt));

  Nan::Set(resJson, Nan::New("ru_nswap").ToLocalChecked(), Nan::New<v8::Number>((double)usage.ru_nswap));

  return resJson;
}