跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 同一段 C++代码在 AWS aarch64 机器下居然有超过 40ms 的延迟?
未分類
18 1 月 2021

同一段 C++代码在 AWS aarch64 机器下居然有超过 40ms 的延迟?

同一段 C++代码在 AWS aarch64 机器下居然有超过 40ms 的延迟?

資深大佬 : dangyuluo 8

我们有一段代码,会检测某个函数的运行时间,50ms 以上则计失败。该函数目前可以理解为一个std::this_thread::sleep_for(10ms)。理论上有 40ms 的 margin 可以浪费。

在 AWS 的 x86_64 机器下,测试没有任何问题。但是偶尔地,在 AWS a1.4xlarge(aarch64)机器下会超时。也没有超很多,1.66ms 。也就是说一个本应该执行 10ms 的函数 50ms 都没有执行完。

我知道 aarch64 系统的性能确实不如 x86_64,但是这么大的差距是合理的么?

大佬有話說 (17)

  • 資深大佬 : dorafmon

    好奇,蹲一个解释。这个函数没有做任何 io 么?

  • 主 資深大佬 : dangyuluo

    @dorafmon 没有做任何 io,单纯的 sleep_for

  • 資深大佬 : cz5424

    是不是高峰期共享 cpu 计算影响了?我没用过 aws 乱说的

  • 主 資深大佬 : dangyuluo

    @cz5424 有这种可能,同一台机器上确实也会跑其他的 test 。但是我没想到影响会这么大

  • 資深大佬 : dinghao188

    怎么检测的,能简单介绍下吗

  • 資深大佬 : Mohanson

    试试不要跑你自己的函数,可以写个斐波那契函数在两个平台上跑跑就知道性能多少比多少了,云上面的性能都很玄学,我前段时间同台机器跑纯计算的仿真器测试代码,一会 6 分钟一会 4 分钟,妈蛋,当时有人给我提的 issue 我优化完代码,尽然无法确切知道这个优化到底有没有用…

  • 資深大佬 : Mohanson

    半个月前的 issue,最后代码拉自己的游戏机上跑测试才测出快了 10 啪
    https://github.com/mohanson/pywasm/issues/42#issuecomment-753610944

  • 主 資深大佬 : dangyuluo

    @dinghao188 在开始运行函数前获取时间戳(纳秒),运行函数后再获取一次。相减后判断。

    @Mohanson 好的,我再思考一下。谢谢

  • 資深大佬 : opengps

    多开几个实例再试下,云集群里的实际物理资源位置每次新购都会有变动,说不定那次用的实例网络途径更短

  • 資深大佬 : dorafmon

    我不明白的点在于要是只是 sleep_for 的话,那么应该两个机器上应该都只睡了 10ms 为什么会有不一样。

  • 資深大佬 : allAboutDbmss

    没有任何思路
    可以先找一台本地的 aarch64 arm 来跑一下

  • 資深大佬 : mepwang

    代码里取 os 精确到纳秒的时间戳,看看是不是 sleep_for 调用不精确。我记得以前的 sleep 调用误差很大的

  • 資深大佬 : tianshilei1992

    Blocks the execution of the current thread for at least the specified sleep_duration.
    This function may block for longer than sleep_duration due to scheduling or resource contention delays.
    The standard recommends that a steady clock is used to measure the duration. If an implementation uses a system clock instead, the wait time may also be sensitive to clock adjustments.

    https://en.cppreference.com/w/cpp/thread/sleep_for

  • 主 資深大佬 : dangyuluo

    @tianshilei1992 我也有猜测是调度器的问题,但是惊讶于调度器居然 40ms 还不会分配时间片给当前任务

  • 資深大佬 : wang93wei

    如果遇到这个问题,,,为什么不提工单问一下呢?

  • 主 資深大佬 : dangyuluo

    @wang93wei 因为我司不是 AWS 的付费支援客户,而要成为付费支援客户每个月的账单会增长 10%

  • 資深大佬 : 52coder

    本地跑遇到过类似的问题吗?性能上 aarch 不至于这么差,主有结论了麻烦更新下,最近也在移植程序到 aarch 和 mips

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具