PHP WebShell
Текущая директория: /usr/lib/node_modules/bitgo/node_modules/react-native/ReactCommon/react/nativemodule/cputime
Просмотр файла: CPUTime.h
/*
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
#pragma once
#if defined USE_POSIX_TIME
#include <time.h>
#elif defined __MACH__
#include <mach/mach_time.h>
#else
#include <chrono>
#endif
#ifdef USE_POSIX_TIME
namespace {
const double NANOSECONDS_IN_A_SECOND = 1000000000;
} // namespace
#endif
#ifdef __MACH__
namespace {
inline double getConversionFactor() {
double conversionFactor;
mach_timebase_info_data_t info;
mach_timebase_info(&info);
conversionFactor = static_cast<double>(info.numer) / info.denom;
return conversionFactor;
}
} // namespace
#endif
namespace facebook::react {
#if defined USE_POSIX_TIME
inline double getCPUTimeNanos() {
struct timespec time {};
clock_gettime(CLOCK_THREAD_CPUTIME_ID, &time);
return static_cast<double>(time.tv_sec) * NANOSECONDS_IN_A_SECOND +
static_cast<double>(time.tv_nsec);
}
inline bool hasAccurateCPUTimeNanosForBenchmarks() {
return true;
}
#elif defined __MACH__
inline double getCPUTimeNanos() {
static auto conversionFactor = getConversionFactor();
uint64_t time = mach_absolute_time();
return static_cast<double>(time) * conversionFactor;
}
inline bool hasAccurateCPUTimeNanosForBenchmarks() {
return true;
}
#else
inline double getCPUTimeNanos() {
auto now = std::chrono::steady_clock::now();
return static_cast<double>(
std::chrono::duration_cast<std::chrono::nanoseconds>(
now.time_since_epoch())
.count());
}
inline bool hasAccurateCPUTimeNanosForBenchmarks() {
return false;
}
#endif
} // namespace facebook::react
Выполнить команду
Для локальной разработки. Не используйте в интернете!