程序漏洞和使用场景 设备硬件 线程进程的关系 产生原因


由于现代计算机硬件 (如主板 CPU 内存 显卡 硬盘 等) 主要由大公司生产,经严格出厂测试 质量一般比较稳定。

软件大公司可生产,个人也能提供,但由于技术水平 测试标准不同,存在各种问题。

而将软件与硬件结合,加上使用场景时,可见到各种不同问题。

使用场景 领域


由于应用程序的编写,是基于某些应用场景或领域的,不存在一个什么场景都通用的应用程序。

因此,当将应用程序换成其作者 (或开发团队) 不太了解的应用场景或领域,就会出现各种不同问题。

设备硬件


譬如:以前为计算机设备开发硬件,主要基于 PC 及单核或双核 CPU。

随着时代的进步,现在的 CPU 都是多核心的,且有时还需跨各种不同硬件 操作系统平台。

低效应用程序在高速 高配置硬件上运行虽一切正常,但效率太低 (不能充分调用 CPU 所有线程 进程)。

而高效应用程序 (能充分调用 CPU 所有线程 进程) 在低速 低配置硬件上运行,就可能出现一些不兼容性问题。

硬盘 单通道


主要影响高效应用程序运行的是硬盘,用户一是基于价格考虑,二是因为硬盘比较耐用。

不像主板 CPU 内存 显卡对设备运行效率的影响是显而易见的,硬盘则不然。

若高效应用程序能充分发挥硬盘性能,这种不常见问题就会突显出来。

一般硬盘不但运行效率低,且还采用类似单通道的工作方式。

当一项工作完成时,硬盘才允许下一工作开始 (特别是低速硬盘)。

若前一工作大量占用硬盘性能,之后的工作可能基本无响应 (反应慢或卡死)。

不管是应用程序 操作系统,还是用户的个人文档,都主要存储在硬盘上,内存 显卡 CPU 主板仅存储临时计算用数据。

相较内存 显卡 CPU 主板的工作效率,一般硬盘不是慢一点而是慢很多,甚至低几倍 (虽然很多硬盘也存在一定的高速缓冲)。

线程 进程


当以低速 少线程 少进程运行应用程序时,有些问题是看不到的 (尤其是那种偶发或低频问题)。

特别是某些不太显眼的偶发或低频死循环,因为出现频率低,开发者很难注意到。

这种问题一多,还会影响应用程序运行效率和用户体验。

特别是 GIL (全局解释器锁) 导致的单线程问题。

See also:

Python 编程 盲区死角 注意事项 解决办法

Python警告异常 错误漏洞 疑难杂症 解决办法

PySide2 PyQt5 错误异常 调试漏洞 疑难杂症 解决办法汇总

Copyright Notice: This article is exclusive original manuscripts, copyrighted by Happy Digits Software , shall not be reproduced without permission.