在我的一个rails应用程序中,当我粘贴文本,键入和(特别是)删除文本时,控制台已经开始运行非常缓慢.我可以在顶部看到,irb正在使用大量的cpu.但我不知道如何进一步诊断这个问题.几个星期前刚刚开始发生.我想知道它是否可能与readline / wirble相关?我使用这两个.
我只是在另一个应用程序中尝试,粘贴在一个文本块中,它似乎也是坏的 – 文本以一个字符的速度出现!也许我的命令行历史已经填满了吗?我该如何删除? (对于rails控制台,不是我的bash命令行历史)
感谢任何建议 – 最多
编辑 – 抱歉,应该提供了一些系统细节.干得好:
System - Ubuntu 10.04 Ruby version - ruby 1.8.6 (2007-09-24 patchlevel 111) [i486-linux]
我刚刚尝试纯平的irb,我有同样的问题.它可能会更慢,通过我粘贴在文本块中的一半停止测试它已经是一个很好的基础.
我已经重新启动了很多次(我的笔记本电脑电池被叮当,所以我必须重新启动,每次我拔掉它无论如何).
我不在vm
我最近开始使用RVM(ruby版本管理器),它似乎与之吻合,尽管这可能是巧合.有问题的控制台正在使用系统ruby,而不是rvm.
以下是ps aux |的输出grep irb:
max 12583 0.0 0.0 1756 484 pts/7 S+ Apr11 0:00 sh -c irb -r irb/completion -r "/home/max/work/rails_apps/millionaire_container/millionaire/config/environment" -r console_app -r console_with_helpers --simple-prompt max 12584 15.9 2.7 61872 56956 pts/7 S+ Apr11 158:26 irb max 13981 64.4 0.9 20080 18708 pts/9 R+ 09:40 29:51 irb max 14625 21.8 0.6 15020 12628 pts/12 Rl+ 10:25 0:20 irb max 14757 0.0 0.0 3048 804 pts/13 R+ 10:27 0:00 grep --color=auto irb
解决方法
看起来rvm的readline导致缓慢,把这一行放在你的〜/ .irbrc中:
IRB.conf[:USE_READLINE] = false
现在尝试粘贴irb的东西.是快吗好!
现在唯一的问题是你已经失去了编辑线条的能力.我们需要修复rvm的readline.
# assuming 1.8.6 is your rvm's default ruby version rvm package install readline rvm remove 1.8.6 rvm install 1.8.6 --with-readline-dir=$rvm_path/usr
不要忘记从irbrc编辑IRB.conf行.