@程序员,计算机重启包治百“病”?

2019 年 6 月 3 日 程序人生

开发者必须清醒地认识到,重新启动并不是解决所有问题的方法。

作者 | Mikel

译者 | 王艳妮责编 | 郭芮

出品 | CSDN(ID:CSDNnews)

以下为译文:

当我们遇到问题时,一个常见的策略是从头开始重新来过。从头重做一遍,可以使我们能够避免可能先前未被注意到的失误,并且能更好地了解问题发生的方式和原因。

在技术领域,这一策略也适用——你的电脑是否运行缓慢或没有响应?尝试重启计算机;无法运行那个程序?结束任务然后再重新运行一遍......

让我们来谈谈为什么重新启动计算机是一个如此有效的解决方案吧。

首先,计算机有两种不同类型的存储:

  • 非易失性存储器允许用户长期存储数据,即使关闭计算机也不会造成数据丢失,但是这种类型的存储器速度(相对)较慢。比如说硬盘、光盘(CD,DVD或蓝光)或USB。

  • 易失性存储器速度非常快,但它需要极高的性能来维持运行。由于其速度快,易失性存储器常被用作计算机的工作存储器。

这种工作内存由操作系统管理,操作系统控制正在运行的进程并为每个进程分配空间。每个进程在此空间中存储它此时正在操作的数据,并从操作系统请求资源(例如更多内存、访问CPU或访问外围设备),当进程不再需要这些资源时必须将其释放。

程序代码中可能会出现错误,导致计算机以不稳定的方式运行:

  • 例如,编程中的错误可能导致程序进入死循环,只是在消耗CPU而不做任何事情,并减慢其余进程的速度。

  • 其他编程错误集中在资源使用不当上:一个进程请求大量资源,或者随着时间的推移不断发出少量资源的请求但不释放先前获得的资源。最终的结果是其余的进程只有很少的可用资源,必须等到这些资源被释放。尤其,内存管理可能是一个问题频出的领域。除了在不释放内存的情况下囤积内存,进程可能会尝试访问未经请求的或之前已释放的内存。这种错误的访问可以以意想不到的方式修改进程的数据,或者在更极端的情况下,修改其他进程的数据或某些进程的二进制代码。

  • 操作系统本身也可能有自己的缺陷,导致资源被永久阻碍而无法被使用或进程已经结束但仍然占用资源。

重新启动计算机是一种“以强制方式”修复工作内存的方法:消除它并从头开始。使用这种方法,没有必要担心问题产生的原因:我们返回到工作内存“正确”的状态,如果导致错误的情境不再发生,那么错误也将不再发生。

因此,重启计算机非常有效,原因有三:

  • 因为它可以同时解决不同类型的问题:资源积累、僵尸进程、死循环的程序、内存损坏等。

  • 因为我们不需要花时间来诊断问题出现的原因。

  • 因为如果错误是由于多个异常情况同时出现才产生,那么重启之后通常这个错误不会再次出现,并且看起来我们已经“修复”了这个问题。

但是,必须记住,重新启动不是解决所有问题的方法。例如,它不能解决硬件问题或消除恶意软件(如果有的话)。如果我们的计算机性能不够强大,要么是我们在启动计算机时运行了太多程序,要么是我们想要使用的程序需要的资源比我们拥有的资源多,这样的话重启也无法消除错误。

原文链接:https://medium.com/@basterrika/why-restarting-the-computer-is-the-solution-to-almost-all-problems-e831f415c010

本文为 CSDN 翻译,转载请注明来源出处。

为码一代,想教码二代却无从下手:

听说少儿编程很火,可它有哪些好处呢?

孩子多大开始学习比较好呢?又该如何学习呢?

最新的编程教育政策又有哪些呢?

下面给大家介绍CSDN新成员:极客宝宝(ID:geek_baby)

戳他了解更多↓↓↓

 热 文 推 荐 

北漂杭漂的程序员,是如何买到第一套房子?

支离破碎的 Android

马斯克是如何成为表情包之王的

前端开发 20 年变迁史

☞直接拿来用!灵跃模组机器人硬核评测(编程篇)

☞容器云常见安全威胁与防范 | 技术干货

敲诈团伙将黑手伸向宅男, 你在家看不可描述的视频, 竟被骗走100万美元!

各方最新回应!如何看待IEEE官方声明“学术禁令”?

代码整洁之道-编写 Pythonic 代码

☞敲代码时,程序员戴耳机究竟在听什么?

点击阅读原文,输入关键词,即可搜索您想要的 CSDN 文章。

你点的每个“在看”,我都认真当成了喜欢
登录查看更多
0

相关内容

存储器单元实际上是时序逻辑电路的一种。按存储器的使用类型可分为只读存储器(ROM)和随机存取存储器(RAM),两者的功能有较大的区别,因此在描述上也有所不同
【2020新书】实战R语言4,323页pdf
专知会员服务
100+阅读 · 2020年7月1日
【实用书】学习用Python编写代码进行数据分析,103页pdf
专知会员服务
192+阅读 · 2020年6月29日
【干货书】现代数据平台架构,636页pdf
专知会员服务
253+阅读 · 2020年6月15日
【实用书】Python技术手册,第三版767页pdf
专知会员服务
234+阅读 · 2020年5月21日
Python导论,476页pdf,现代Python计算
专知会员服务
259+阅读 · 2020年5月17日
【实用书】Python爬虫Web抓取数据,第二版,306页pdf
专知会员服务
117+阅读 · 2020年5月10日
【2020新书】如何认真写好的代码和软件,318页pdf
专知会员服务
63+阅读 · 2020年3月26日
【资源】100+本免费数据科学书
专知会员服务
107+阅读 · 2020年3月17日
机器学习速查手册,135页pdf
专知会员服务
338+阅读 · 2020年3月15日
在K8S上运行Kafka合适吗?会遇到哪些陷阱?
DBAplus社群
9+阅读 · 2019年9月4日
使用 C# 和 Blazor 进行全栈开发
DotNet
6+阅读 · 2019年4月15日
如何编写完美的 Python 命令行程序?
CSDN
5+阅读 · 2019年1月19日
年薪48万的程序员,他究竟做对了什么?
机器学习算法与Python学习
7+阅读 · 2018年12月28日
Python 杠上 Java、C/C++,赢面有几成?
CSDN
6+阅读 · 2018年4月12日
Python为啥这么牛?
Python程序员
3+阅读 · 2018年3月30日
10个深度学习软件的安装指南(附代码)
数据派THU
17+阅读 · 2017年11月18日
十五条有用的Golang编程经验
CSDN大数据
5+阅读 · 2017年8月7日
这位程序员为什么要弃用Facebook?
CSDN
5+阅读 · 2017年7月14日
Generating Fact Checking Explanations
Arxiv
9+阅读 · 2020年4月13日
Factor Graph Attention
Arxiv
6+阅读 · 2019年4月11日
VIP会员
相关VIP内容
【2020新书】实战R语言4,323页pdf
专知会员服务
100+阅读 · 2020年7月1日
【实用书】学习用Python编写代码进行数据分析,103页pdf
专知会员服务
192+阅读 · 2020年6月29日
【干货书】现代数据平台架构,636页pdf
专知会员服务
253+阅读 · 2020年6月15日
【实用书】Python技术手册,第三版767页pdf
专知会员服务
234+阅读 · 2020年5月21日
Python导论,476页pdf,现代Python计算
专知会员服务
259+阅读 · 2020年5月17日
【实用书】Python爬虫Web抓取数据,第二版,306页pdf
专知会员服务
117+阅读 · 2020年5月10日
【2020新书】如何认真写好的代码和软件,318页pdf
专知会员服务
63+阅读 · 2020年3月26日
【资源】100+本免费数据科学书
专知会员服务
107+阅读 · 2020年3月17日
机器学习速查手册,135页pdf
专知会员服务
338+阅读 · 2020年3月15日
相关资讯
在K8S上运行Kafka合适吗?会遇到哪些陷阱?
DBAplus社群
9+阅读 · 2019年9月4日
使用 C# 和 Blazor 进行全栈开发
DotNet
6+阅读 · 2019年4月15日
如何编写完美的 Python 命令行程序?
CSDN
5+阅读 · 2019年1月19日
年薪48万的程序员,他究竟做对了什么?
机器学习算法与Python学习
7+阅读 · 2018年12月28日
Python 杠上 Java、C/C++,赢面有几成?
CSDN
6+阅读 · 2018年4月12日
Python为啥这么牛?
Python程序员
3+阅读 · 2018年3月30日
10个深度学习软件的安装指南(附代码)
数据派THU
17+阅读 · 2017年11月18日
十五条有用的Golang编程经验
CSDN大数据
5+阅读 · 2017年8月7日
这位程序员为什么要弃用Facebook?
CSDN
5+阅读 · 2017年7月14日
Top
微信扫码咨询专知VIP会员