史上最良心的 Ubuntu desktop 美化优化指导(2)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了史上最良心的 Ubuntu desktop 美化优化指导(2)相关的知识,希望对你有一定的参考价值。

参考技术A 最近我在学习的工程中将我的 Ubuntu 18.04 操作系统做了一次彻底的优化和美化。为什么要美化和优化呢?美化是为了让自己吃饭的工具看起来漂亮,毕竟每天都要使用的;优化当然是让系统的运行工作得更好。现在我在我在虚拟机中重新安装了 Ubuntu 18.04 desktop 操作系统,准备把整个美化的过程记录下来。

参考: 史上最良心的 Ubuntu desktop 美化优化指导(1)

参考: 史上最良心的 Ubuntu desktop 美化优化指导(1)

Ubuntu 18.04 在进行系统优化的时候,不建议过度优化,过度优化只会适得其反,如果是笔记本安装 Ubuntu 18.04 系统,那主要关注固态硬盘的优化和笔记本电池的优化就可以了。

tip:如果你的硬盘不是固态硬盘就不要搞这个优化了。

现在许多固态硬盘在出厂的时候就预留了一部分空间,大约是容量的 1/4 来禁止用户访问,这样做的好处是将这部分空间不进行空间分配,提高固态硬盘的性能和寿命,至于原因这里就不多说了,和固态硬盘的特性有关,感兴趣的朋友可以去找相关资料学习。如果你的固态硬盘买得比较早,那就保留 10G 的空间不要分配就可以了。

查看是否支持的命令是: sudo hdparm -I /dev/sda | grep TRIM ,如果输入结果和下面差不多,能找到 supported 字样,那说明是支持的。

也可以通过命令: sudo systemctl status fstrim.service 查看 fstrim 服务是不是处于 active 状态来确定是否支持,如下图是支持的时候的截图。

sudo mkdir -v /etc/systemd/system/fstrim.timer.d

vim /etc/systemd/system/fstrim.timer.d/override.conf ,输入:

sudo apt install intel-microcode

关于 swap 的使用和作用,这里部介绍了,为了提高系统性能,我们可以通过减少对 swap 的使用,具体做法就是当内存资源少于一个给定的值后才使用 swap。

程序执行相应操作后,需要写入硬盘的数据要写入硬盘后才进行下一步操作,如果能够在数据存到缓存中的时候就开始接下来的操作,那程序的性能将大大提高,这其实也是可以做到的,不过如果遇到突然断电等事件的时候,我们的数据就会丢失,所以这个优化项自行决定是否需要优化。

打开 disk 工具,如下图:

点击右上角的红色框住的图标,然后选择 Drive Settings,然后打开上图中的开关即可。

将 Firefox 网络缓存写入 RAM,而不是写入硬盘,内存不足 2G 的就建议别这样做了。具体做法如下:

默认情况下 Ubuntu 使用 CFQ 作为 I/O 调度器,但是这个默认设置对 SSD 硬盘没有效果,如果我们使用的是 SSD 硬盘,那需要进行修改,修改步骤如下。

这个有现成的工具可用,不必手动优化,只需要安装工具即可,安装步骤如下:

冒泡排序史上最经典的实现

冒泡排序概念讲解

简单点说,冒泡排序就是将大的数通过一步步比较放在右边,将小的数一步步放在左边。

代码实现

本代码不是最优代码,但是肯定是最容易理解的代码

  • 双层循环法
var arry = [44, 3, 38, 5, 47, 15, 36, 26, 27, 2, 46, 4, 19, 50, 48]

const bubblesort = function (arr) 

    //第一次需要排15个元素,第二次需要排序14个元素,所以从15个元素慢慢递减 15 14 ...
    for (var i = arr.length; i > 0; i--) 
        //确定好需要排序的元素之后,就从0开始相邻两个元素之间进行比较排序,
        //之所以是 i-2 是因为避免数组越界,i-1表示数组最后一个元素,由于你需要前后交换,所以多减了一个
        for (var j = 0; j < i - 2; j++) 
            if(arr[j] > arr[j+1])
                var temp = arr[j+1];
                arr[j+1] = arr[j];
                arr[j] = temp;
            
        
    


bubblesort(arry)
console.log(arry)
  • 递归法
var arry = [44, 3, 38, 5, 47, 15, 36, 26, 27, 2, 46, 4, 19, 50, 48]


const bubbleSort2 = function (arr, len) 

    if (len <= 0) return

    for (var i = 0; i < len - 2; i++) 
        if (arr[i] > arr[i + 1]) 
            var temp = arr[i + 1];
            arr[i + 1] = arr[i];
            arr[i] = temp;
        
    

    bubbleSort2(arr, len - 1)


bubbleSort2(arry, arry.length)
console.log(arry)

其实两个算法的本质是一样的,其核心思想就是反复对元素进行排序,直到所有元素都排了一遍。

其中最容易犯错的就是数组元素边界问题,这个只能大家自己根据我的描述多揣摩。

运行效果

 

以上是关于史上最良心的 Ubuntu desktop 美化优化指导(2)的主要内容,如果未能解决你的问题,请参考以下文章

Ubuntu零基础教学-史上最详Ubuntu20.04安装教程,超级详细,强烈建议收藏!

冒泡排序史上最经典的实现

MySQL使用总结以及MySQL性能优化,史上最详细的教程来啦~

移植QT5.6到嵌入式开发板(史上最详细的QT移植教程)

BZOJ 2178 圆的面积并 ——Simpson积分

史上最恐怖的数学题求解啊。。。