计算机系统结构-延迟转移

本文探讨了计算机系统结构中的延迟转移现象,即CPU在执行条件判断时进行预判执行。通过对比未排序、算数计算和排序后的执行效率,展示了预判错误的代价和排序对于性能的影响。实验数据显示,在不同数据量下,排序后的执行效率通常优于未排序的情况。
摘要由CSDN通过智能技术生成
#include <iostream>
#include <tr1/random>
#include <chrono>
#include <algorithm>

/*!
 *延迟转移:CPU在执行条件判断的时候为了保证管线的流水,会
 * 对指定进行预判执行,如果判断成功则流程继续,否则判断失败
 * 会从条件判断正确的地方加载代码到流水管线中执行
 * (从数据可见,有时候我们在for循环中使用判断逻辑的时候,如果
 * 能增加判断概率是可以提高性能的,之前为认为肯定是不排序快,
 * 实际情况是排序比不排序快),一半如果预判错误导致的代价会
 * 慢10~20个CPU的时钟周期。
 *
 * 测试结果
=========DEBUG=========
统计数据量:32768
未排序的执行效率
sum=3.1558e+06 耗时=14115322ns
采用算数计算的效率
sum=3.1558e+06 耗时=256719ns
排序后的执行效率
sum=3.1558e+06 耗时=352787ns

========Release==========
统计数据量:32768
未排序的执行效率
sum=3.1558e&
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值