问题:我正在尝试弄清楚如何编写一个代码(首选C,只有在没有其他解决方案时才使用ASM)在50%的情况下会导致分支预测失败。因此,它必须是一段“免疫”与分支相关的编译器优化的代码,并且所有硬件分支预测不应超过50%(抛硬币)。更大的挑战是能够在多CPU架构上运行代码并获得相同的50%未命中率。我设法在x86平台上编写了一个达到47%分支未命中率的代码。我怀疑失踪者可能有3%来自:其中包含分支的程序启动开销(虽然非常小)Profiler开销-基本上每次读取计数器都会引发一个中断,因此这可能会增加额外的可预测分支。在后台运行的系统调用包含循环和可预测的分支我编写了自己的随机数生成器,以避免调