是什么让程序加载如此之快?

是什么让程序加载如此之快?

我有这个问题需要答案。

是什么让程序像英石,扎图拉,八十四, 和菲赫立即加载以及什么使程序像VS代码谷歌浏览器在低规格计算机上加载如此缓慢?

例如,我有一台运行 Linux Mint 的低规格笔记本电脑。当我执行时英石,它立即打开一个英石实例,但是当我执行时谷歌浏览器,需要很长时间才能打开谷歌浏览器实例。是什么让 st 加载速度比 Google Chrome 快,是什么让 Google Chrome 加载速度比 st 慢。

谢谢你! :)

答案1

与 Google Chrome 相比,feh 的作用并不大。只需比较文件大小和依赖项数量:

$ ls -l /usr/lib/chromium/chromium
-rwxr-xr-x 1 root root 187751032 May 13 05:50 /usr/lib/chromium/chromium
$ ls -l $(which feh)
-rwxr-xr-x 1 root root 207280 Feb  2 21:03 /usr/bin/feh
$ ldd /usr/lib/chromium/chromium | wc -l
178
$ ldd $(which feh) | wc -l
49

此外,Google Chrome 还包含它所依赖的许多开源库的自己的修改版本。它很大,加载需要更长的时间。

答案2

在现代 Unix(包括 Linux)上,大部分程序都是共享库,它们保留在内存中。启动程序时,动态链接器 ( libc.so) 运行并解析库等。这需要时间,并且程序的大部分内容也必须加载到内存中。添加程序执行的任何初始化(例如重新打开选项卡上显示的网页,...)。此外,如果你连续运行同一个程序两次,内存映像的一部分(至少是共享库)仍然存在,从而加快了进程。如果程序只使用流行的共享库,那么它们可能无论如何都会存在。

相关内容