0
点赞
收藏
分享

微信扫一扫

JAVA相关的一些底层知识

是归人不是过客 2022-01-21 阅读 76
java

1.计算机五大核心组成部分

上面的只是计算机的逻辑模型,生产出来的计算机是下面的模型

2.CPU指令结构

CPU内部结构

  • 控制单元  运算单元  数据单元  三部分

3.CPU缓存结构

1.CPU读取存储器数据过程

2.CPU为何要有高速缓存

//空间局部性实践结果
//二维数组计算大小
//按行计算的速度比按列计算快
public class TwoDimensionalArraySum {
    private static final int RUNS = 100;
    private static final int DIMENSION_1 = 1024 * 1024;
    private static final int DIMENSION_2 = 6;
    private static long[][] longs;
​
    public static void main(String[] args) throws Exception {
        /*
         * 初始化数组
         */
        longs = new long[DIMENSION_1][];
        for (int i = 0; i < DIMENSION_1; i++) {
            longs[i] = new long[DIMENSION_2];
            for (int j = 0; j < DIMENSION_2; j++) {
                longs[i][j] = 1L;
            }
        }
        System.out.println("Array初始化完毕....");
​
        long sum = 0L;
        long start = System.currentTimeMillis();
        for (int r = 0; r < RUNS; r++) {
            for (int i = 0; i < DIMENSION_1; i++) {//DIMENSION_1=1024*1024
                for (int j=0;j<DIMENSION_2;j++){//6
                    sum+=longs[i][j];
                }
            }
        }
        System.out.println("spend time1:"+(System.currentTimeMillis()-start));
        System.out.println("sum1:"+sum);
​
        sum = 0L;
        start = System.currentTimeMillis();
        for (int r = 0; r < RUNS; r++) {
            for (int j=0;j<DIMENSION_2;j++) {//6
                for (int i = 0; i < DIMENSION_1; i++){//1024*1024
                    sum+=longs[i][j];
                }
            }
        }
        System.out.println("spend time2:"+(System.currentTimeMillis()-start));
        System.out.println("sum2:"+sum);
    }
}            

3.带有高速缓存的CPU执行计算的流程

4.CPU运行安全等级

4.CPU核心与线程的关系

5.操作系统内存管理

6.虚拟机指令集架构



栈指令集架构

寄存器指令集架构

Java符合典型的栈指令集架构特征,像Python、Go都属于这种架构。课上将给大家剖析整个栈指令集架构执行链路过程。
​
栈指令集架构速度比较慢,数据在内存中的jvm栈空间中,变量信息放在栈的局部变量表中,在JVM学习的时候,一个a+b的操作先要从局部变量表中弹出数字,加入到操作数栈,操作数栈中的数要交给CPU去运行,由前面的缓存模型可知,数据到达cpu运算还是一个缓慢的过程,等cpu算完再放回操作数栈,操作数栈再将数据复制到局部变量表中,由此可见这么多步骤能不慢吗
​
但是为了可一至性,也只能使用栈指令集架构
举报

相关推荐

0 条评论