c++ - 使用 rdtsc 做基准测试有什么缺点?
问题描述
我正在尝试为低延迟工作负载设计基准(每个操作的中位数为数百纳秒)。我很好奇使用 rdtsc() 和时间戳计数器测量设计基准的保真度。
这种方法有什么缺点或潜在问题?
解决方案
最严重的缺点rdtsc
是它非常特定于硬件。即使在支持该指令的硬件上,它也可能不会稳定增长,在不同内核之间不同步,并且可能会受到 CPU 状态的影响。
通常,如果您的 CPU 支持constant_tsc
,nonstop_tsc
和tsc_known_freq
,使用它进行延迟测量应该是非常有效率的。
推荐阅读
- apache-spark - 为什么 Spark 会因“方案没有文件系统:本地”而失败?
- javascript - 'toString()' 显示未定义
- java - 无法通过子类访问父类方法
- angular - 在刷新页面之前没有在登录时获得 ID - Angular
- elasticsearch - 确定elasticsearch中数据节点和索引的数量
- azure - Azure 应用程序见解 - “依赖项”表中的记录导致混淆
- python - 如何获取在 tkinter 的顶级小部件中输入的值并在主窗口中使用它来显示?
- java - 如何在 Android 中永久保存 aufio 文件?
- php - 将 PGSQL 结果查询复制到 MYSQL 服务器
- javascript - 为什么在 new 时无法创建 Awesomplete JavaScript 对象?