程序员在写代码的时候bug太多会给计算机造成损坏吗?为什么?

魏晋美人


本人从事服务端的软件开发工作。bug不会引起电脑机械故障。只不过一些严重的bug会对计算机的运行处理性能造成一定影响,严重者会导致程序停止或崩溃。当程序bug修复后计算机运行指标又会恢复如初。

列举几个典型的严重bug对计算机性能的影响的例子。

1.cpu密集型(涉及大量的计算类)的死循环,会一直占用更严重者会消耗光计算机CPU资源,导致其他运行程序(或软件)卡顿甚至崩溃。

2.有些IO密集型任务(比如计算机之间大量的文件等资源传输)一直读取,也会造成计算机卡顿,网络传输拥堵,会影响其他程序的正常运行。

3.内存密集型的任务,比如一些耗费内存的缓存任务,如果占用内存资源一直不释放,就是所谓的内存泄露,时间久而久之会耗尽计算机的内存资源,进而导致程序运行越来越慢,最终程序崩溃或者机器宕机。

这种软件类的程序bug一般不会对计算机硬件造成损害,重启机器能短暂恢复如初。当然最彻底的解决办法是修复程序bug后重新部署完才算釜底抽薪了。

总之,bug不会对计算机硬件造成破坏,对性能的影响是暂时的,修复bug后计算机性能完全可恢复的,这点请放心。


IT之眼


你好,一个具有八年嵌入式底层驱动程序设计经验的工程师回答你提出的问题,程序员在写代码的时候Bug太多会给计算机造成损坏吗?为什么?答案是大部分情况下不会造成计算机的损坏,极端情况下可能,分析如下:

一、程序设计的分类

随着现代社会的不断发展,我们的软件分类越来越多,传统的软件一般分为底层驱动启动代码操作系统中间件和应用软件等。可以说每个层次的软件地位划分不同,一般启动代码和驱动程序更加接近硬件设备,而操作系统和应用软件一般上可认为是纯软的设计,它们距离硬件系统稍远一些。

二、不同类型程序的访问特点

像Linux或者Windows这样的操作系统,对于内部的进程存储空间是有保护的,也就是说,如果你在桌面系统上编写一个应用软件,由于操作系统的保护,最多也就是访问越界,造成操作系统进入异常处理,终止你的应用进程。所以,如果只是在桌面系统上开发应用软件,那么基本不可能造成硬件的损坏。如果是驱动程序或者我们说的Boot软件,它们启动时具有硬件芯片最高的访问权限,一般都会涉及一些最接近芯片内核的代码,还有各种外设接口的硬件访问控制,也就是说整个芯片都随便由其处置,那么Bug程序如果产生在这样的软件之中,极端情况下,就有可能损伤硬件的。


三、列举一个硬件可能损坏的情况

我举一个嵌入式系统的例子,假如我们的Bug程序会不断的擦写我们的非易失性存储器,比如NorFlash或者NandFlash,又或者EEPROM,每次上电或者异常都要不停的擦写,假如擦写了上百万次(当然这只是一个假设,Bug也不会存在那么久),那么NorFlash可能就会坏掉,Nand产生N多个坏块,基本上也会报废。所以从程序的访问特点来看,驱动程序更接近硬件,Bug可能会造成硬件损坏。

总结以上分析得出,如果只是在计算机桌面系统中开发应用软件,由于系统的保护,基本不会出现损伤硬件的情况,如果是底层驱动的代码有Bug,极端情况下,会有损伤坏硬件的可能。


以上是我的观点,希望可以帮到你,喜欢的话欢迎点赞和关注哦!


瓶凡科技营


原则上程序员写代码调试对于计算机的冲击是有限的,但编程来讲不是什么都是绝对的,如果是windows编程写的代码对于cpu或者硬盘有非常大的冲击,也会造成计算机损害但这种概率还是非常低的,所以对于软件开发来讲可以进行无数次的试错,而且成本代价很低,这是软件开发相比硬件要好的地方。硬件的开发试错成本就会提升很多,硬件的试错需要具体的器件,如果运行不成功很可能导致器件的损坏。

要说软件的操作对于具体器件没有损害,这种话是不对的因为在具体实施过程中,通过软件来控制硬件的,特别是一些冲击力比较大的硬件如果软件控制的时序不对,也会造成硬件的损伤,所以硬件和软件整体来讲是不分家的,硬件不会具体脱离软件而去运行,软件的控制硬件的时序不当也会造成期间受到巨大损失。

程序员在具体写代码的过程中经常出现bug是非常常见的事情,特别是对于一些新手由于对规则讲述不清晰也会造成问题的出现,新手在写代码的时候更加容易出现一些异常的错误,因为新手在具体实施过程中可能基本的代码逻辑都会存在问题,更不要说是设计逻辑上的问题。即使非常成熟的程序员写的代码也会有bug的存在,因为代码的细节还是非常繁多,而且只要是软件产品就会有bug的存在,即使是已经运行多年的产品,如同只要是上网的设备都可能存在被攻击的可能性。

如何避免写的代码出现bug,根本问题在于多做不要怕写代码同样的问题出现多了,自然就会想办法去规避问题,所以越是经验丰富的程序员越是对代码的把握能力强,而且老程序员在对待出现的问题还能推演出不对的问题所在,所以经历项目多的程序员在处理紧急问题时候表现的更加沉稳。

好的程序代码在运行过程中不但损耗少,而且还非常的稳定,如果写的代码对于硬件资源占据的比例非常大,长时间运行系统就容易变得不稳定,同样是一直在运行的程序但是用的时间长就能看出好坏了,bug是程序开发过程中必不可少的因子,也是程序员成长过程中必然要经历的事,解决的bug越多经验显得越丰富,涉及到嵌入式的软件开发对于硬件的控制就要加倍小心了,因为硬件需要在合适的工作环境下工作,像强电的操作如果软件控制的时序不对,就会造成器件的损坏,用软件控制硬件的场景使用的就非常多,关键器件的工作是需要合适的条件的,硬件在非常规下运行的时间长了,自然就会缩短寿命了,希望能帮到你。


分享到:


相關文章: