作为一个程序员,追求程序的运行速度是正常的行为不过。
那么 GPU、CPU、内存、文件流、磁盘,速度到底相差多少?今天整理了一下。

1、GPU 在进行通用运算时,和 CPU 是一个数量级的。在进行重复劳动时,效率是 CPU 的几百倍了。
     GPU,相当与 Windows 中的批处理。
     执行一次动作没有什么速度优势。当你执行1000次、100000次,效率就体现出来了。
     用 GPU 解码一张 JPEG 图片,和 CPU 相比,根本没有优势。
     但如果你是解码 1000 张 JPEG 图片,效率就可观了。(CUDA SDK 中有示例,可自行测试)
     这也是 GPU 存在的意义。
     GPU 主要针对重复劳动,而 CPU 针对所有劳动。
     所以 GPU 多用在 AI、游戏中。都是重复劳动的那种。
     二者没有替代关系。但竞争关系是有的。
     Intel    给 CPU 添加 AVX256/AVX512/AVX1024/AVX2048......指令,用于并行计算。
     Nvidia 给 GPU 添加通用计算寄存器,用于通用计算。

2、CPU 的运算速度是内存存取速度的 250 倍左右。当然不是一概而论。
   程序员在编程时,所谓的表优化,就是内存的存取了。
   内存的存取极限就是你程序的运行极限了。
   所以,当还需要进一步优化时,内存就不行了。只能依靠 CPU 的 SIMD 指令了。
   当然你的算法也很关键。即能使用 SIMD 指令,又能多核并行,这样的算法,速度肯定是宇宙无敌的了。

3、内存速度是文件流速度的 1.5 倍左右。
   文件流是操作系统使用了虚拟内存技术,解决磁盘效率低下而发明的。
   速度上和内存相差不大。但毕竟使用的还是磁盘。
   在代码优化时,可以多使用文件流的方式,毕竟接近内存速度了。
   在处理大文件时,比较好用。因为你不可能将几个G的文件一并放进内存里。

4、磁盘速度:
     HDD              read:0200MB/S   write:0150MB/S
     SATA             read:0550MB/S   write:0500MB/S
     SSD(PCIE4)  read:3500MB/S   write:3000MB/S (三星 970 evo plus)
     SSD(PCIE5)  read:7000MB/S   write:6000MB/S (没有实测结果,根据报导推测)
   大家在使用 Windows 时,都有体会。
   复制文件时眼巴巴地看着那个数字。奇慢无比,无法忍受。又不得不忍着。
   内存 DDR4 的读写速度是:50000MB/S(50GB/S) 左右。是 SSD5 的 7 倍,是 SSD4 的 15 倍。是 SATA 的 100 倍了。
   换硬盘吧。哈哈哈。当然对于程序员代码效率并没有多少作用。不过给小姐姐们换个豪宅还是有必要的。
   固态硬盘取代内存,看来还需要一段时间。

总结:
    1、对于程序员而言,尽量不要频繁使用磁盘,将数据尽量一次性从磁盘取出,放进内存中。
         最优的情况是在程序运行过程中,不使用磁盘。结束时,才使用磁盘。
    2、如果不能一次性将数据放进内存,那么就使用文件流的方式。毕竟速度接近内存。
    3、当你的程序跑在内存较小的机器上时,流方式,是你无法避免的选择。
    4、CPU 指令固然重要,但你的算法更重要。优化算法才是你该干的事。
    5、表优化 + SIMD 指令 + 多核并行 + 优化的算法,肯定是宇宙无敌了。相信自己一定可以的。

GPU、CPU、内存、文件流、磁盘的速度之比相关推荐

  1. Linux 查看CPU 内存 IO使用率,linux 查看CPU内存 网络 流量 磁盘 IO

    使用vmstat命令来察看系统资源情况 在命令行方式下,如何查看CPU.内存的使用情况,网络流量和磁盘I/O? Q: 在命令行方式下,如何查看CPU.内存的使用情况,网络流量和磁盘I/O? A: 在命 ...

  2. 如何查看linux网络io,linux 查看CPU内存 网络 流量 磁盘 IO

    使用vmstat命令来察看系统资源情况 在命令行方式下,如何查看CPU.内存的使用情况,网络流量和磁盘I/O? Q: 在命令行方式下,如何查看CPU.内存的使用情况,网络流量和磁盘I/O? A: 在命 ...

  3. 处理器仿存带宽_linux服务器CPU内存硬盘读写带宽等性能测试方法

    如何对一个VPS主机进行CPU内存,硬盘IO读写,带宽速度等项目测试,像UnixBench和压力测试则可以综合反映一个VPS的性能水平,方便大家对照参考. VPS性能测试:CPU内存,硬盘IO读写,带 ...

  4. 通过HuTool工具类和oshi查询cpu使用率、内存大小、磁盘空间等

    Hutool 是一个小而全的Java工具类库,一个Java基础工具类,对文件.流.加密解密.转码.正则.线程.XML等JDK方法进行封装,组成各种Util工具类. Oshi是Java的免费基于JNA的 ...

  5. 加载文件流_未关闭的文件流会引起内存泄露么?

    专注于Java领域优质技术,欢迎关注 来自:技术小黑屋 最近接触了一些面试者,在面试过程中有涉及到内存泄露的问题,其中有不少人回答说,如果文件打开后,没有关闭会导致内存泄露.当被继续追问,为什么会导致 ...

  6. Linux系统监控命令整理汇总-掌握CPU,内存,磁盘IO等找出性能瓶颈

    的性能有问题,总之,每到晚上挖站否的主机就出现了不稳定的情况,系统负载忽高忽低.利用服务器日志分析利器:ngxtop和GoAccess也能查出有一些IP一直在不断地扫描服务器端口还有WP后台. 但是, ...

  7. ssd测试软件和实际 速度,测出真相!实测CPU/内存对SSD性能的影响

    1解析CPU,内存和硬盘三者关系 [PConline 评测]不同于传统的机械硬盘,固态硬盘的组成很"简单",主控+闪存+PCB+外壳(缓存有些SSD直接省去).那实际影响SSD性能 ...

  8. Linux:常用性能检查命令(内存、CPU 、网络、磁盘、Java应用)

    目录 MAC地址 系统版本和内核版本 内存方面 free 作用 格式 主要参数 应用实例 vmstat 作用 格式 应用实例 CPU方面 查看CPU数量 lscpu top 语法 内容解释: 网络方面 ...

  9. linux系统CPU,内存,磁盘,网络流量监控脚本

    前序 1, #cat /proc/stat/  信息包含了所有CPU活动的信息,该文件中的所有值都是从系统启动开始累积到当前时刻 2, #vmstat –s   或者 #vmstat    虚拟内存统 ...

  10. 2020年8月腾讯云服务器收费标准(CPU/内存/带宽/磁盘价格表)

    2020年8月腾讯云服务器收费标准(CPU/内存/带宽/磁盘价格表) 腾讯云服务器价格是由CPU.内存.公网带宽.云硬盘组成的,云服务器配置不同.CVM实例规格不同云服务器价格也不同,腾讯云公网带宽价 ...

最新文章

  1. Github上传大于100M文件:LFS
  2. 人工智能会取代科学家吗
  3. leetcode - Container With Most Water
  4. SpringBoot入门教程(十)应用监控Actuator
  5. Spring之泛型依赖注入
  6. 2020.NET开发者大会大会线上同步直播,以及参会秘籍
  7. mysql查询id为偶数_MySQL中查询中位数?
  8. Google的Flutter工具允许开发者开发跨平台应用
  9. vmware tools 的安装(Read-only file system 的解决)
  10. 流畅接口(Fluent Interface)
  11. pdf转图片,汉字不显示No glyph for 23495(CID 0969) in font SimSun
  12. AHU-743 多重部分和问题 【多重背包变种】
  13. Intel显卡跑ROS与CUDA总结(MacBook Pro 11.6.3)
  14. 【图形学】计算机图形学的应用领域
  15. JavaScript百炼成仙 1.18 函数七重关之一 (函数定义)
  16. Scrcpy手机投屏
  17. python谷歌地图查找附近地铁站_Google地图实现查找指定地点1公里范围之内的地铁站...
  18. 线性代数--1.2 行化简与阶梯形矩阵
  19. python--孪生素数
  20. 谷歌浏览器点击任意部分都会出现黑色光标

热门文章

  1. x86 x64 arm64 安装包的区别
  2. 好心情平台:30分钟就可改善抑郁情绪的运动处方
  3. Seckill秒杀系统高并发优化
  4. lbs mysql_使用mysql来实现lbs排序
  5. Java实习面试一般问什么?选大公司还是小公司?
  6. linux a卡双显卡切换显卡,amd显卡驱动 双显卡切换
  7. ASCII码对照表--符号/十进制/十六进制
  8. PS 打好的字体 怎么修改 字体间距
  9. 关于三线SPI驱动ST7789V
  10. 新浪微博错误提示代码