Questions tagged «performance»

程序运行的速度

1
如何在Linux系统上清空缓冲区和缓存?
在进行基准测试之前,如何释放Linux内核为其缓冲区和缓存消耗的内存(RAM)? 请注意,这对于基准测试最有用。清空缓冲区和缓存会降低性能!如果您在这里是因为您认为释放缓冲区和缓存是一件好事,那就去看Linux吃我的RAM!。简而言之:空闲内存就是未使用的内存就是浪费的内存。
315 linux  kernel  performance  cache  ram 

8
当RAM中有足够的可用空间时,为什么要使用swap?
使用交换空间代替RAM会大大降低 PC的速度。 那么,为什么当我有足够多的可用RAM时,我的Linux系统(Arch)是否使用交换? 在下面查看我的conky输出: 另外,这可能是我遇到的速度和系统响应性问题的原因吗? 输出free -m: $ free -m total used free shared buffers cached Mem: 1257 1004 252 0 51 778 -/+ buffers/cache: 174 1082 Swap: 502 144 357
124 performance  swap 

6
我可以配置Linux系统以获得更积极的文件系统缓存吗?
我既不用担心RAM的使用(我已经足够了),也不必担心由于意外关机而丢失数据(因为我的电源得到了支持,系统很可靠,数据也不重要)。但是我做了很多文件处理,可能会提高性能。 这就是为什么我想将系统设置为使用更多的RAM进行文件系统的读写缓存,以积极地预取文件(例如,在文件大小正常或至少合理的情况下,预读应用程序访问的整个文件)提前读取其中的很大一部分),并减少刷新缓冲区的频率。如何实现(可能)? 我在XUbuntu 11.10 x86上使用ext3和ntfs(我经常使用ntfs!)文件系统。

5
有没有办法确定dd的bs参数的最优值?
有时我会在网上看到一些评论,例如“请确保设置'bs =',因为默认值会花费很长时间,”以及我自己极其不科学的经验,“似乎花费的时间比其他时间长。上周的时间”似乎证明了这一点。因此,每当我使用“ dd”(通常在1-2GB范围内)时,请确保指定bytes参数。大约有一半的时间我使用了要复制的任何在线指南中指定的值;剩下的时间,我将从'fdisk -l'列表中选择一些有意义的数字,因为我认为是较慢的媒体(例如,我正在写入的SD卡)。 对于给定的情况(媒体类型,总线大小或其他重要因素),是否可以确定“最佳”值?确定容易吗?如果没有,是否有一种简单的方法来获得90-95%的方法?还是“只是选择大于512的东西”甚至是正确的答案? 我已经考虑过自己尝试该实验,但是(除了进行大量工作之外)我不确定会影响答案的因素是什么,所以我不知道如何设计一个好的实验。


4
破折号或其他外壳比bash更快吗?
我一直认为使用破折号代替bash的唯一好处是破折号较小,因此许多破折号实例在启动时会更快地启动。 但是我进行了一些研究,发现有些人将所有脚本迁移到破折号以希望它们运行得更快,并且我也在Ubuntu Wiki的DashAsBinSh文章中找到了这一点: 切换默认Shell的主要原因是效率。bash是适合交互使用的出色的全功能外壳;实际上,它仍然是默认的登录外壳。但是,与破折号相比,它的启动和操作相当庞大且缓慢。 如今,我在系统上的许多事情上都使用了很多bash脚本,但我的问题是我有一个特定的脚本,该脚本连续24/7运行,产生了大约200个孩子,这些孩子将我的计算机加热10° C比正常使用更多。 这是一个很大的脚本,带有很多bashism,因此将它们移植到POSIX或其他shell会非常耗时(并且POSIX对于个人使用而言并不重要),但是如果我可以减少其中的一部分,那将是值得的CPU使用率。我知道还需要考虑其他事项,例如调用外部二进制文件(如或代替的sed简单bashism)。${foo/bar}grep=~ 与破折号相比,TL; DR的启动和操作真的比bash慢吗?还有其他比bash 更有效的 Unix shell 吗?
56 bash  performance  dash 

4
我应该照顾不必要的猫吗?
许多命令行实用程序可以从管道或文件名参数中获取输入。对于长Shell脚本,我发现以a开头的链cat使其更具可读性,尤其是在第一个命令需要多行参数的情况下。 相比 sed s/bla/blaha/ data \ | grep blah \ | grep -n babla 和 cat data \ | sed s/bla/blaha/ \ | grep blah \ | grep -n babla 后一种方法效率较低吗?如果是这样,差异是否足以关心脚本是否运行(例如每秒运行一次)?可读性差异不大。

2
为什么egrep [wW] [oO] [rR] [dD]比grep -i word快?
我一直在使用grep -i,发现它比egrep同等字母的字母大写或小写字母慢。 $ time grep -iq "thats" testfile real 0m0.041s user 0m0.038s sys 0m0.003s $ time egrep -q "[tT][hH][aA][tT][sS]" testfile real 0m0.010s user 0m0.003s sys 0m0.006s 是否grep -i还要进行其他测试egrep?
49 grep  performance 

1
与图形文件搜索实用程序相比,为什么GNU这么快找到?
我正在尝试查找主目录和所有子目录中不存在的文件。 find ~/ -name "bogus"几秒钟后就给我提供了该信息,但是KDE的dolphin文件管理器需要近3分钟来完成相同的操作。这与我以前在GNOMEbeagle上的经验相对应。 如何find能做到同样的速度非常快,而图形搜索(这是更直观的比命令行参数的使用)蛞蝓背后?

2
UNIX套接字与TCP端口的性能
例如在php-fpm上: #listen = 127.0.0.1:9000 listen = /var/run/php-fpm/php-fpm.sock 在TCP端口上使用基于unix套接字的侦听器之间在性能上有什么主要区别吗?(不仅对于PHP,而且一般而言。每个服务是否有所不同?)

4
什么是用于存储大量小文件(HDD,而不是SSD)的最高性能Linux文件系统?
我有一个包含许多小文件和少量大文件的目录树。文件的平均大小约为1 KB。树中有210158个文件和目录(此数字是通过运行获得的find | wc -l)。 每周有几次添加/删除/重写一小部分文件。这适用于小文件,以及(少量)大文件。 我尝试过的文件系统(ext4,btrfs)在磁盘上放置文件时遇到一些问题。在更长的时间范围内,磁盘(旋转媒体,而非固态磁盘)上文件的物理位置正变得更加随机分布。这种随机分布的负面结果是文件系统变慢(例如:比新文件系统慢4倍)。 是否有一个Linux文件系统(或文件系统维护方法)没有遭受这种性能下降的困扰,并且能够在旋转媒体上保持稳定的性能状况?该文件系统可以在Fuse上运行,但是必须可靠。

4
grep:内存耗尽
我正在做一个非常简单的搜索: grep -R Milledgeville ~/Documents 一段时间后出现此错误: grep: memory exhausted 如何避免这种情况? 我的系统上有10GB的RAM,运行的应用程序很少,所以我真的很惊讶一个简单的grep内存不足。~/Documents大约100GB,其中包含各种文件。 grep -RI 可能没有这个问题,但是我也想在二进制文件中搜索。


3
VirtualBox:分配比物理CPU核心数量更多的虚拟CPU核心是一个坏主意吗?
我想知道,由于我具有支持超线程的 CPU,因此分配比物理CPU内核数量更多的虚拟CPU内核不是一个好主意,因为以下警告提示: 文字记录: 与主机系统上的物理CPU数量相比,分配给虚拟机的虚拟CPU数量更多。这可能会降低虚拟机的性能。请考虑减少虚拟CPU的数量。 有人可以对此主题进行推理吗? 编辑1: 有问题的CPU是Intel Core i7-4700HQ,Ark Intel,CPU Benchmark 编辑2: 假设没有过时的硬件,例如HDD(而不是SSD)和/或Low RAM(此处vm.swappiness为16GB,最低为该VM 4GB),依此类推。

7
强制目录始终位于缓存中
我一直在测试各种方法,以缩短编译整个c ++项目所需的时间。目前大约需要5分钟。我尝试了distcc,ccache等。最近,我发现,如果我将整个项目复制到RAM驱动器上,然后从那里进行编译,它将编译时间减少到原来的30%,即1.5分钟。 显然,从RAM驱动器工作是不切实际的。那么,有谁知道我可以强制操作系统始终保持某个目录缓存的方法吗?我仍然希望目录像往常一样被同步回磁盘,但是我也总是希望复制内存中的数据。这可能吗? 编辑: 作为一种可能的解决方案,我们只是想启动一个守护程序,该守护程序rsync每10秒左右运行一次,以将磁盘驱动器与RAM驱动器同步。然后,我们从RAM驱动器运行编译。该rsync是极快的,但这样做真的有用吗?当然,操作系统可以做得更好。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.