Linux】为何我觉得 Windows 系统用久会变慢,而 Linux 不会?

2020-03-20 19:26发布

是由于 Windows 用久了存在太多的缓存文件和注册表文件之类的吗?

是由于 Windows 用久了存在太多的缓存文件和注册表文件之类的吗?

5条回答
flyeagle
2楼 · 2020-04-24 18:42

Linux的内核设计的机制更加优秀,对内存以及文件系统的管理效率更好。

水默
3楼 · 2020-08-28 15:00

比方说,线上服务器跑着CentOS 7,用着gcc 4.9.2和glibc 2.22,你拿着个mbp跑着macOS用着几乎最新版Clang开开心心写着代码,本地编译测试都没问题,回头上线打包只是编译通不过也就罢了,就怕编译通过了回头行为不一样……

再说了,mac个bsd血统,O_DIRECT没有没关系,punch hole不行也认了,lio这种内核内嵌的玩意没有你就没得选;

linux/的.h不一定能找到对应的;一票sh下的常用工具都不太一样就很烦……;

稍微上层一点的,你去哪儿找epoll是个问题,要不干脆kqueue写一套epoll再写一套? 所以说假设是在服务器上写比较偏底层的C/C++的,用mac大都要么满头的#ifdef,还来个虚拟机跑个模拟环境,不然就全天候ssh到编译机上准备挖坑,体验就很糟糕。 所以得看情形不是么……

写Java写Python(不含炼丹)写Golang用mac体验就很不错,写底层C/Cpp那还不如Win+SubSystem(不那么底层倒是无所谓了),更不如直接上linux了。

元则清
4楼 · 2020-09-24 20:54

学习 Linux 系统能够很好的让我们了解计算机工作的原理,对于巩固基础知识是非常有用的。大学里面的计算机原理课程大多偏向理论,没有真正的结合实际操作系统验证这些理论知识。还有一个很重要的原因是,很多人使用的都是 Windows 操作系统。所以导致我们在学习计算机原理和操作系统的课程的时候没有很好的掌握其中的内容,到了工作中要用到的时候就两眼摸黑,云里雾里的了。

不吃鱼的猫
5楼 · 2022-04-12 09:53

Linux非界面话管理,相比windows机制更完善

腾腾家的宝贝
6楼 · 2022-04-26 09:14

首先,“用久”以后,Linux 也是会变慢的,当然,变慢到让人感知到的程度跟你的硬件配置、使用习惯、使用轻重有关。我们回到一个抽象的概念,所有的硬件资源在买来以后,如果不做添置,其实都是有限的。如果持续使用,“用久”以后会发生什么变化?


第一方面,硬件本身会老化。


举个简单例子,经常高温可能导致材料性能发生变化,另外一个例子,比如说磁盘坏块增多,原来可以连续读写的变成随机读写。这个是硬件平台通用的问题,但是不同系统在应对的时候,文件系统的差异会有较大的影响。比如,Linux 文件系统种类很多,而且革新一直是持续的,会相对友好一些。但是,老化这个引起的物理变化是没办法彻底避免的,系统能做的主要是降低磁盘擦写次数,做温度控制等等。


 


第二方面,硬件资源“余量”越来越小。


包括所有硬件资源,使用的程序增多,很多会常驻,比如说各大巨头的全家桶,用户想杀是杀不死的,下载的软件和音视频,文档等等,都会让各类资源逐步趋向紧张的状态,不知道大家是否观察到,无论是哪个系统,Chrome 浏览器是吃内存的大户,多开一些Tab 打开很多网页后,系统几乎无一例外会卡顿。


对于“不可再生”(迟早得用完)的磁盘容量资源,系统能做的就是磁盘压缩、垃圾清理(实在不行,只能添置磁盘或者转移备份)和碎片化优化(大块连续的磁盘不多了,导致随机读写增多,“磁头”跑来跑去,而且类似DMA的动作可能都做不了)。比如,在实际观察测试中发现,F2FS 针对 NAND 进行了特别的优化,相比 EXT4,在碎片化后,各项指标的性能下降很小。


对于“可再生的”处理器计算和内存容量资源,这个考验到系统的资源管理策略,包括前后台资源配额,后台进程数和内存容量设限,但是又要兼顾某些关键应用的需求,比如说微信要接收消息通知,闹钟影响关键日程安排,这些都不能简单杀了,这里涉及到很多的技术支持,Linux 在这块的迭代做得非常不错,但是实际上生产厂家的使用还是非常不充分,有各种成熟的机制,比如 cgroups, freeze, vm配置,但是策略和实际应用上要解决很多实际的问题。这里头,最关键的是要保障核心交互需求可以即时拿到资源。这个我抽象为“余量预留”,这个概念是所有“用久”或者“重载”后的优化关键。其实,这部分理论上对 Windows 也适用。但是 Windows 会否完全放弃 NT 而改用 Linux 呢?在 edge 浏览器替换核心后其实是有希望的。


 


硬件本身革新的背后,是系统的迭代和进化。


相关问题推荐

  • 回答 7

    使用命令:chmod 744 myflile就可以实现以上的操作。

  • 回答 4

    关于CLOSE_WAIT和TIME_WAIT状态,服务器端都有可能出现,TIME_WAIT出现应该是短连接较多,需要通过修改内核参数解决,CLOSE_WAIT状态则是服务器程序可能有问题,服务器需要主动close,以及epoll多路复用模型中使用linger调整关闭等待时间分析解决这类问题,关...

  • 回答 6
    已采纳

    chmod 命令:chmod命令是非常重要的,用于改变文件或目录的访问权限。用户用它控制文件或目录的访问权限。该命令有两种用法。一种是包含字母和操作符表达式的文字设定法;另一种是包含数字的数字设定法。1. 文字设定法:chmod [who] [+ | - | =] ...

  • 回答 3
    已采纳

    Linux chattr 命令一般,chattr命令用于更改Linux文件上属性。以下是它的语法:chattr [ -RVf ] [ -v version ] [ mode ] files...下面是man手册对它的描述:chattr 改变一个Linux文件系统上的文件属性。一个通用格式是:+-=[aAcCdDeijsStTu]‘+’选项,将给...

  • 回答 8
    已采纳

    命令格式cat [选项] [文件]...命令功能cat主要有三大功能:一次显示整个文件:cat filename从键盘创建一个文件:cat > filename 只能创建新文件,不能编辑已有文件.将几个文件合并为一个文件:cat file1 file2 > file命令参数-n 或 --number 对输出的所有行编号,...

  • 回答 3

    shell的执行过程: 首先,脚本是从上至下从左至右执行每一行的语句的。 其次,当执行脚本时会进入一个新的shell,也成为nologin shell,在该shell下执行完成后,再返回执行前的shell。更加详细的讲解请楼主参考鸟哥linux网站中的bash shell章节有图能让您更...

  • 回答 3

    学习linux为什么要学习Shell: 1、首先我们了解一下shell编程是什么,其实shell编程就是一坨linux命令的集合再加上一些控制语句而已 2、为什么要学习linux下的shell编程,我们平时在做运维工作时总会遇到一些重复的工作,如果我们会shell编程的话就可以将这些...

  • 回答 6

    1.服务器一般情况下只有在进行项目部署或者是出现问题的时候才需要进行远程连接操作,在进行连接的时候我们一般都是使用的外部连接软件2.启动软件,点击快速连接,我们要选择连接的协议3.协议选择要然后填写服务器的IP地址和用户名,然后点击连接4.在通过验证...

  • 回答 2

    这种叫做无尽尝试,就是一直使用各种密码破解登陆,也可能某些内网人无意,但是电脑可能也中了某些APP类似的病毒模拟登陆或者直接说就是病毒在尝试,这种在windows系统服务上很常见,最多的是尝试3389(远程登陆)、1433(MSSQL-SA)、3306(mysql的root)的...

  • 回答 3

    所有的网站都存在服务器当中,服务器本身的地区、网速、空间大小等多方面的因素影响网站的打开速度、运行和优化的结果。那么,网站更换服务器的影响有哪些?如何降低影响?接下来2898站长资源平台小编就跟大家分享下网站更换服务器的影响的相关内容,一起来看看...

  • 回答 3
    已采纳

    云服务器品牌众多,群英提醒大家在选购时需留意以下几点:1.服务器品牌:出众品牌的服务器,有着硬件上的优质保障,使用起来更加顺畅和满意。2.服务器性能:留意选购的服务器是否为当前最为热门、最新、最高端的型号与配置。3.防御能力:目前同行之间的竞争日...

  • 回答 1

    互联网时代的到来,各行各业都选择网上营销做生意,就必然要选择一台服务器,可是自己弄服务器和维护成本又太大了,所以多数站长都会选择租一台服务器,现在服务器租用种类也是多种多样,用户如何正确识别高防服务器呢?高防的机房硬件防火墙设备起码在10G以上...

  • 回答 2
    已采纳

    在js文件中可以通过http request方式(比如js中的ajax请求)触发php方法并得到response信息以下是php文件中代码:// index.php$name = $_POST[name];$password = $_POST[password];$result = loginUser($name, $password);echo $result;?>以下是在html页面中...

没有解决我的问题,去提问