重排序

在执行程序时为了提升性能,编译器和处理器常常会对指令进行重排序。重排序分红三种类型:缓存

  1. 编译器优化的重排序。编译器在不改变单线程程序语义放入前提下,能够从新安排语句的执行顺序。
  2. 指令级并行的重排序。现代处理器采用了指令级并行技术来将多条指令重叠执行。若是不存在数据依赖性,处理器能够改变语句对应机器指令的执行顺序。
  3. 内存系统的重排序。因为处理器使用缓存和读写缓冲区,这使得加载和存储操做看上去多是在乱序执行。

从Java源代码到最终实际执行的指令序列,会通过下面三种重排序:性能

源代码--->1:编译器优化重排序--->2:指令级并行冲排序--->3:内存系统重排序--->最终执行的指令序列优化

相关文章
相关标签/搜索