在 Linux 中获取时间戳的"最便宜"方式 (c++)
'Cheapest' way of getting time stamp in Linux (c++)
我想知道在Linux(c++)中获取时间戳的最便宜的方法是什么
我认为这是一种准确性交易,所以我相信有不止一种可能性
我需要毫秒,但不一定是microseconds
,所以std::localtime
不是一个选项,gettimeofday
可能太贵了。(由于微秒精度)。
1:fprintf(stdout, "%un", (unsigned)time(NULL));
2:struct timeval tv;
gettimeofday(&tv,NULL);
tv.tv_sec // seconds
tv.tv_usec // microseconds
3:std::time_t result = std::time(nullptr);
std::cout << std::asctime(std::localtime(&result))
<< result << " seconds since the Epochn";
4:
using namespace std::chrono;
milliseconds ms = duration_cast< milliseconds >(
high_resolution_clock::now().time_since_epoch()
);`
我建议使用ctime库和以下代码:
std::time_t timestamp = std::time(nullptr);
std::cout << std::asctime(std::localtime(&result))
<< result << " seconds since the Epochn";
这将在"结果"变量中返回自大纪元以来的秒数(相当直接)。有一些方法可以将其转换为可读格式,但正如您所说,这是昂贵的。获取该数字将非常有效,因为它只从系统中读取变量,而不是转换/连接和计算可读日期。
相关文章:
- Cython通过浮点数的最快方式,用于高频控制回路
- 获取数字最左边两个位的值的最便宜的方法是什么?
- 复制到Texture2D和从Texture2D复制的最快捷方式
- boost::multiprecision:乘以或除以 10 的巨大幂最便宜的方法是什么?类似于 10 次方的位移运算?
- 重置类的最优雅方式
- 在 Linux 中获取时间戳的"最便宜"方式 (c++)
- 选择多个插入行的最快捷方式
- 在Windows7上,将原始数据写入硬盘(PhysicalDrive)的最快方式
- 使用 getline 函数的最优雅方式
- C++,自午夜以来获得毫秒的最快方式
- 从异步启动的方法回调的最优雅方式
- 在 Linux 中读取文件的最快方式
- 持有多个特征矩阵Xd的最有效方式
- 存储资源的最有效方式
- 输出输入c++的最短方式
- COM事件处理的最快方式(就性能而言)
- 在 c++ 中,知道路径是否引用文件夹或文件的最便宜的方法是什么?
- 输入巨大字符串的最快方式
- 在生成数据时写入数据的最快方式
- 对象列表,按键(其成员之一)排序的最快方式(复杂度比较)