Questions tagged «performance»

程序运行的速度

5
测量外壳中的管道吞吐量
有一个shell命令,它允许您测量数据通过数据的速度,因此您可以测量管道中命令输出的速度。所以代替: $ somecommand | anothercommand 您可以执行以下操作: $ somecommand | ??? | anothercommand 我认为吞吐量统计信息(字节/秒)会打印到stderr。但是我无法终生记得那个命令。



3
awk和grep cut之间的确切区别是什么?[关闭]
我们知道,可以使用以下两种技术从文件中获得所需行的第二列: awk '/WORD/ { print $2 }' filename 要么 grep WORD filename| cut -f 2 -d ' ' 我的问题是: 上面的两个命令有什么区别? 哪一个表现最好? 使用而awk不是使用的优点是什么cut,反之亦然? 有什么选择可以awk给我们带来cut反过来呢?
30 awk  grep  performance  cut 

12
如何调整Linux桌面以提高响应速度?
我的经验是,在物理内存耗尽之前,Linux可以正常工作。一旦使用交换空间,性能就会严重下降,GUI会变得无响应。 这个问题不仅限于特定的发行版或台式机,因为我已经尝试了一些(问题仍然存在)。 我该怎么办?
30 linux  kernel  performance  io  swap 

4
python vs bc评估6 ^ 6 ^ 6
我正在分别6^6^6使用python和评估表达式bc。 python文件的内容为print 6**6**6。当我执行时time python test.py,我得到的输出为 real 0m0.067s user 0m0.050s sys 0m0.011s 然后,我运行了命令time echo 6^6^6 | bc,该命令给了我以下输出 real 0m0.205s user 0m0.197s sys 0m0.005s 从这些结果可以明显看出,python和bc所花费的sys时间分别为11ms和5ms。在系统时间级别上,bc命令的性能优于python,但对于用户和实时python,它的速度几乎是bc的4倍。什么可能去了那里。我没有对此类流程给予任何优先考虑。我试图了解这种情况。

11
为什么Shell无法自动修复“猫的无用使用”?[关闭]
很多人使用单行代码和包含代码的脚本 cat "$MYFILE" | command1 | command2 > "$OUTPUT" 第cat一种通常称为“猫的无用使用”,因为从技术上讲,它需要启动一个新进程(通常是/usr/bin/cat),如果已经执行了该命令,则可以避免这种情况 < "$MYFILE" command1 | command2 > "$OUTPUT" 因为shell只需启动command1,只需将其stdin指向给定文件即可。 Shell为什么不自动执行此转换?我觉得“猫的无用使用”语法更容易阅读,shell应该有足够的信息来自动摆脱无用的cat。的cat是在POSIX标准定义,因此壳应该允许执行它在内部,而不是在路径使用二进制的。Shell甚至可以只包含一个参数版本的实现,并在路径中回退到二进制。

8
使磁盘/磁盘复制变慢
有没有一种方法可以减慢Linux上的复制过程? 我有一个大文件,例如10GB,我想将其复制到另一个目录,但是我不想全速复制。假设我想以1mb / s的速度复制它,而不是更快。我想使用标准的Linux cp命令。 这可能吗?(如果是,如何?) 编辑:因此,我将为我要实现的内容添加更多上下文。 通过USB将大文件复制到pendrive,usb磁盘等时,我在ArchLinux系统上遇到问题。填满USB缓冲区高速缓存后,我的系统停止响应(即使鼠标停止;它也只是偶尔移动)。复制操作仍在进行中,但是占用了100%的资源。复制操作完成后,一切都会恢复正常-一切都再次完美响应。 我不知道这可能是硬件错误,但我确实知道我有两台机器都遇到此问题(两者都在ArchLinux上,一台是台式机,另一台是笔记本电脑)。 对此最简单,最快的“解决方案”(我同意这不是“真正的”解决方案,只是一个丑陋的“ hack”)将通过以USB驱动器的平均写入速度复制文件来防止该缓冲区被填满,例如对我来说就足够了。

1
为什么“ ls *”比“ ls”花费更长的时间?
我在目录中有几个文件: $ ls | wc -l 9376 谁能解释为什么使用ls *和会有如此大的时差ls? $ time ls > /dev/null real 0m0.118s user 0m0.106s sys 0m0.011s 和 $ time ls * > /dev/null real 1m32.602s user 0m0.233s sys 0m0.438s 好的,这是一个极好的示例,并且可能会得到增强,因为该目录位于通用并行文件系统(GPFS)上。但是我还可以看到本地文件系统的显着速度下降。 编辑: $ time ls -l > /dev/null real 0m58.772s user 0m0.113s sys 0m0.452s $ time ls …

9
对于Bash中的vs查找
遍历文件时,有两种方法: 使用for-loop: for f in *; do echo "$f" done 用途find: find * -prune | while read f; do echo "$f" done 假设这两个循环将找到相同的文件列表,那么这两个选项在性能和处理方面有何不同?

8
配管,移位或参数扩展更有效吗?
我试图找到最有效的方法来迭代某些值,这些值在用空格分隔的单词列表中彼此保持一致的值数(我不想使用数组)。例如, list="1 ant bat 5 cat dingo 6 emu fish 9 gecko hare 15 i j" 因此,我希望能够仅遍历list并仅访问1,5,6,9和15。 编辑:我应该明确指出,我要从列表中获取的值的格式不必与列表的其余部分不同。使它们与众不同的仅仅是它们在列表中的位置(在这种情况下,位置1,4,7 ...)。因此,列表可能是,1 2 3 5 9 8 6 90 84 9 3 2 15 75 55但我仍然想要相同的数字。而且,假设我不知道列表的长度,我希望能够做到这一点。 到目前为止,我想到的方法是: 方法一 set $list found=false find=9 count=1 while [ $count -lt $# ]; do if [ "${@:count:1}" …

5
为什么遍历文件比将文件读入内存和计算两次快两倍?
我正在比较以下 tail -n 1000000 stdout.log | grep -c '"success": true' tail -n 1000000 stdout.log | grep -c '"success": false' 与以下 log=$(tail -n 1000000 stdout.log) echo "$log" | grep -c '"success": true' echo "$log" | grep -c '"success": false' 令人惊讶的是,第二个比第一个要花几乎三倍的时间。它应该更快,不是吗?
26 bash  performance  io 

5
我可以禁用updatedb吗?
有updatedb必要吗?我从没使用过locate,我的服务器往往有数以千万计的文件,这些文件通常会使updateb长时间运行,并消耗MySQL和/或其他软件所需的I / O。 我可以将其从cron中删除,然后期望一切正常吗?(我指的是在服务器上找到的常用软件:Linux,cpanel,mysql,apache,php等)。

2
是否可以在强制交换时触发OOM杀手?
是否可以让系统抢先换出不活动的页面(vm.swappiness),但在系统内存不足(而不是内存不足)并被迫换盘时调用oom-killer? 最终目标是防止由于主要页面错误而使系统开始损坏磁盘时,系统不再处于停顿状态,但仍然让不活动的页面被换出。 另一个愿望是配置在强制关闭oom-killer之前强制系统使用多少交换内存。这样,只要距离不远,系统就可以进行少量交换。或者,我可以设置一个阈值以在使用所有RAM之前触发oom-killer,以便始终为文件系统缓存留出空间(从而避免更多的磁盘颠簸)。 似乎并不难做到。好像您可以告诉oom-killer在系统使用/免费的X ram时触发。但这就是为什么我要问。我不知道。 为了澄清起见,我不想关闭交换或调整vm.swappiness参数

4
Linux上的Benchmark SSD:如何测量与CrystalDiskmark在Windows中所做的相同的事情
我想对一个ssd进行基准测试(可能使用加密的文件系统),并将其与Windows上crystaldiskmark完成的基准测试进行比较。 那么,如何测量与crystaldiskmark大致相同的东西? 对于第一行(Seq),我认为我可以做类似的事情 LC_ALL=C dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc sudo su -c "echo 3 > /proc/sys/vm/drop_caches" LC_ALL=C dd if=tempfile of=/dev/null bs=1M count=1024 但是我不确定dd参数。 对于随机的512KB,4KB,4KB(队列深度= 32),读取/写入速度测试我不知道如何在Linux中重现测量结果?那我该怎么做呢? 对于测试读取速度,sudo hdparm -Tt /dev/sda对于我来说似乎没有什么意义,因为我希望例如对基准进行测试,例如encfs安装。 编辑 @Alko,@iain 也许我应该写一些关于这个问题的动机:我正在尝试对我的SSD进行基准测试,并比较一些加密解决方案。但这是另一个问题(在我的系统上对不同加密解决方案进行基准测试的最佳方法)。在网上浏览有关ssd和基准测试的信息时,我经常看到用户在论坛上发布其CrystelDiskMark结果。因此,这是该问题的唯一动机。我只想在linux上做同样的事情。对于我的特定基准测试,请参见我的其他问题。

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.