博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux性能优化建议
阅读量:4575 次
发布时间:2019-06-08

本文共 1330 字,大约阅读时间需要 4 分钟。

每个人都希望自己的计算机运行如飞,对Linux系统而言,性能优化必不可少。我已经使用了多年Linux,现在与大家分享一些性能优化方面的技巧,希望能够对大家有所助益。

编译源代码 vs. 下载二进制文件

跟Linux系统打交道,你要么选择下载二进制形式(类似于Windows上的发布方式)的软件,要么选择下载源代码自行编译。这两种选择有什么分别?

我们来简要看看CPU的架构。近来,64位处理器大行其道。64位处理器支持64位指令集及其扩展指令集。对32位处理器和操作系统,大家可能已经熟知了这样一个术语-“x86”。如果使用64位处理器和操作系统,我们会碰到另一个术语-“x86-64”。“x86-64”描述了CPU的架构,也许你猜对了,这是基于x86架构指令集的64位扩展。

大部分的现代CPU不仅仅支持x86指令集,例如,许多CPU都支持SSE指令集。这些指令集包含了许多特定的例行操作,以提高性能。最初的SSE指令集就包含了浮点操作的例行操作。因此,支持SSE指令集的CPU能够更高效地执行浮点运算。

你下载的二进制格式安装包,被编译成可以在任何计算机上运行。为了确保高度兼容性,开发人员在二进制安装包发布前将源代码进行了一般性编译(他们会针对x86-4架构,但不会针对特定的指令集)。因此,你下载的二进制格式安装包,并没有针对你的计算机进行特定优化,而是以牺牲性能为代价换取了兼容性的最大化。

在编译时对这些额外的CPU特性忽略与否,决定了程序执行的效率。编译时针对特定指令集进行优化,意味着程序运行时执行更少的指令,以及产生结果需要更短的执行时间。

我在此不会详述编译源代码的过程,如果你能安装和配置Linux,相信你可以在Google和Linux社区中找到答案。

编译内核

对于一些高级用户,可以尝试编译内核。如果是桌面用户,推荐在编译内核时应用BFS补丁。BFS补丁会调整内核进程的调度方式,为桌面用户优化桌面体验。我们编译内核的目的是为了优化性能(比如-o2胜过-os),具体的方法要依据不同的Linux发行版和特定的计算场景。

交换分区

计算机使用内存来存储临时数据,但由于内存容量有限,所以需要在硬盘上开辟一块临时存储空间,这就是交换分区。

交换分区也有讨厌的一面。硬盘的速度比内存慢很多,更不用说CPU中的缓存和寄存器了。正式因为这个原因,当计算机使用交换分区时,你会发现,当前程序乃至整个计算机运行缓慢。

所幸,现在内存已经很便宜了。如果你有足够的内存,可以在命令行终端停用交换分区:

  1. echo "vm.swappiness=10" > /etc/sysctl.d/20-swappiness.conf 

此命令适用于大多数Linux发行版。如果不确定,请针对你使用的Linux发行版运行特定的命令(Google一下)。

总结

以上是我对Linux用户的几点性能优化建议。希望大家有足够的探索精神,自己做一点研究。只有亲自尝试,才能体会Linux学习之旅的乐趣!(张志平/编译)

原文链接:

参考链接:

转载于:https://www.cnblogs.com/wala-wo/archive/2012/03/07/5119469.html

你可能感兴趣的文章
.net学习笔记之访问数据库
查看>>
[Swift]LeetCode293. 翻转游戏 $ Flip Game
查看>>
[Swift]LeetCode629. K个逆序对数组 | K Inverse Pairs Array
查看>>
[Xcode 实际操作]三、视图控制器-(5)使用UINavigationController视图入栈和出栈
查看>>
php curl经典最常用的6个例子
查看>>
Synchronized锁机制和ReentrantLock
查看>>
[Angular] How to get Store state in ngrx Effect
查看>>
[Node.js]25. Level 5. Route params
查看>>
C# winform使用cefsharp
查看>>
jQuery
查看>>
移动web开发(二)——viewport
查看>>
web服务器和应用服务器以及web应用框架
查看>>
几种常用加密算法比较 -- 【 转 】 achejq的专栏
查看>>
Java Servlet理解
查看>>
精确解释java的volatile之可见性、原子性、有序性(通过汇编语言)
查看>>
与表单对象相关的伪类选择器
查看>>
无纸化考试
查看>>
Windows下Apache Tomcat?的下载安装和使用
查看>>
WEBUS2.0 In Action - 解析索引文件结构(2)
查看>>
c# 枚举 enum 类型
查看>>