计算机组成与设计之简单谈谈计算机性能

什么是计算机的性能?

首先我们可以先思考一下,就在日常生活中当我们谈到计算机性能,指的是什么?这台电脑的性能更好,我们要知道,其实这种说法是可以继续展开的。按照计算机专业内的标准定义,性能指的是计算机系统完成有用工作的能力

其实可以用一些更加具体的量化指标来衡量计算机的性能。

计算机性能的衡量

从计算机本身的属性出发

  • 系统性能:指计算机系统整体运行的状况,比如硬件、软件、网络等方面。对于用户来说,我们可以使用Windows安全或任务管理器来检查系统性能,例如CPU占用率、内存使用量、磁盘空间等。

  • 程序性能:指计算机执行特定程序或任务的效率和速度,比如运行游戏、视频剪辑,代码的编译过程。我们可以使用测试软件来评估,比如帧数、渲染时间、编译时间。

  • 用户体验:指的是计算机给用户带来的感受和满意度,比如流畅度、稳定性、响应时间等。这里我们就可以非常主观来评判了。

从不同种类的计算机出发

  • 个人计算机:这是我们大部分计算机普通用户的设备,对于这些用户群体,他们更加关心响应时间(response time),以及任务开始到完成的执行时间(execution time)

  • 大型数据中心:数据中心的管理员关注的吞吐量(throughput)带宽(bandwidth)

与计算机性能相关的概念

  • 响应时间:指的是计算机系统从开始到完成一个任务所需要的时间。响应时间越短,用户体验越好。响应时间受到用户输入、程序复杂度、网络延迟等因素的影响。

  • 吞吐量:这个名词在运输行业见的更多,在计算机系统也是一个道理,指的是计算机系统单位时间内处理的任务数量。吞吐量越高,生产力越高。吞吐量会受到CPU核心数、内存大小、硬盘速度等因素的影响。

  • 执行时间:cpu执行一个程序所需要的时间,一个程序从运行到得到结果,是需要一定的时间的,最简单的,我们双击应用程序,从双击结束到程序在屏幕上显示出来的这段时间,就是执行时间。当然,执行时间会受到程序设计,编译优化和运行环境等因素的影响。

  • cpu核心数:指的是cpu包含的处理单元的数量。每个核心都有自己的ALU、控制单元和寄存器。核心数越多,cpu可以同时处理更多的指令。

  • 时钟速度:指的是cpu每秒钟执行的时钟周期数。而时钟周期数指的是计算机两个振荡器脉冲之间的时间间隔。时钟速度用赫兹、兆赫兹、千兆赫兹来衡量。

用代码体现响应时间这个概念

既然响应时间是指一个程序从开始到结束所需要的时间,那么我们可以写一个简单的有计算过程的程序,然后通过java中的一些方法,来输出这个程序运行全过程所用的时间,也就是响应时间。

import java.util.Scanner;

public class ResponseTime {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);//创建一个Scanner对象用于从控制台读取用户输入
        System.out.print("Enter a number: ");//先提示用户输入一个数字

        long start = System.nanoTime();//获取当前时间,这里是以纳秒为单位
        int n = sc.nextInt();//从控制台读取一个整数
        boolean result = isPrime(n);//调用isPrime()方法,计算输入的整数是否是素数,并将结果存储到布尔变量中
        long end = System.nanoTime();//获取当前时间,也是以纳秒为单位
        long duration = end - start;//计算响应时间,以纳秒为单位
        if (result) {
            //如果isPrime的结果为true,那么就可以输出信息:输入的数字是一个素数
        System.out.println(n + " is a prime number.");
        } else {
            //如果isPrime的结果为false,那么就可以输出信息:输入的数字不是一个素数
        System.out.println(n + " is not a prime number.");
        }
        //输出响应时间
        System.out.println("Response time: " + duration + " nanoseconds");
}
        public static boolean isPrime(int n) {
        if (n <= 1) return false;//如果n小于等于1,返回false
        if (n <= 3) return true;//如果n小于等于3,返回true
        if (n % 2 == 0 || n % 3 == 0) return false;//检查n是否能被2或者3整除
        for (int i = 5; i * i <= n; i = i + 6)//检查n是否能被形如6k±1的数整除,k是整数
            if (n % i == 0 || n % (i + 2) == 0)
                return false;//如果n能被i或者i+2整除,返回false
        return true;//如果n不能被以上的数整除,那么返回true,这时候说明n是一个素数
    }
}

思考

这些概念当中,还有比较好着手验证的是带宽,读者可以思考一下如何用程序语言时间带宽的验算

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值