2011-04-11 5 views
14

내 레일 앱 중 하나에서 텍스트를 붙여 넣거나 (특히) 텍스트를 붙여 넣을 때 콘솔이 실제로 느리게 실행되기 시작했습니다. 나는 irb가 많은 CPU를 사용하고 있다는 것을 맨 위에서 볼 수 있습니다. 그러나 나는이 문제를 더 이상 진단하는 방법을 모른다. 몇 주 전에 시작되었습니다. 가능하면 readline/wirble과 관련이 있는지 궁금합니다. 나는 둘 다 사용한다.텍스트를 편집 할 때 레일 콘솔이 매우 느리게 실행됩니다.

방금 ​​텍스트 블록에 붙여 넣은 다른 앱에서 시도해 보았습니다. 텍스트가 1 초당 1 개의 문자로 표시됩니다. 어쩌면 저의 명령 행 역사가 가득 찼을까요? 어떻게 삭제할 수 있습니까? 어떤 조언을

감사 (레일 콘솔, 나의 bash는 명령 행 역사) - 최대

편집 - 죄송합니다, 일부 시스템의 세부 사항을 제공해야합니다. 여기에 당신이 간다 :

System - Ubuntu 10.04 
Ruby version - ruby 1.8.6 (2007-09-24 patchlevel 111) [i486-linux] 

난 그냥 일반 irb 시도하고 동일한 문제가 있습니다. 심지어 느려질 수도 있습니다. 텍스트를 테스트하기 위해 붙여 넣은 텍스트 블록의 중간에 멈추는 것이 꽤 많은 근거입니다.

나는 여러 번 재부팅을했습니다. (제 노트북 배터리가 약해서 어쨌든 플러그를 뽑을 때마다 다시 시작해야합니다).

저는 VM에 없습니다.

나는 최근에 RVM (루비 버전 관리자)을 사용하기 시작했으며, 우연의 일치일지도 모르지만 그와 일치하는 것처럼 보입니다. 문제가되는 콘솔은 시스템 루비를 사용하여 일어나고 있지만, 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 
+5

내 Mac 텍스트가 매우 느리게 나타납니다. 그러나 아무 키나 누르면 즉시 나타납니다. 그것을 시도하십시오 – fl00r

+0

이것은 일반 irb에서도 발생합니까? –

+0

@Max - 사용중인 OS 또는 버전을 말하지 않았지만 명령 행에서 일반 ps aux로 시작하여 작업 세트의 내용을 확인합니다. 또는 재부팅하고 문제가 사라지는지 확인하십시오. Mac 활동 모니터 (Mac을 사용하는 경우)를 보면서 CPU 및/또는 디스크 활동을 감시하는 데 도움이 될 수 있습니다. –

답변

0

FWIW 실제로 작동 하는가 @ fl00r가 제시 한 수정. 나에게이 새로운 동작은 Snow Leopard 10.6.7 업데이트 설치와 관련이있는 것으로 보입니다. IRB와 Rails 콘솔에서 발생합니다.

나를 위해 효과가있는 것으로 보이는 또 다른 사항은 붙여 넣은 테스트의 마지막 줄에 "알몸"줄 바꿈 문자가 포함되어 있는지 확인하는 것입니다.

이것은 완전히 새로운 동작이며 매우 귀찮습니다.

그것은 RVM의 readline에가 속도 저하의 원인이되는 것 같아
+0

안녕하세요. 나는 우분투가 아닌 맥을 사용하고 있습니다. 나는 어떤 업 그레 이드도하지 않았다. 또한이 문제는 텍스트 붙여 넣기뿐만 아니라 일반 타이핑 및 문자 삭제로도 발생합니다. :/ –

17

,이 줄을 추가하여 ~/.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 행을 편집하는 것을 잊지 마십시오.

+2

rvm pkg install readline – ktec

+0

작동하지만, 이제는 이전 명령을 실행하기 위해 화살표를 사용하는 상처를 잃었습니다. – iwiznia

+0

어떻게 든 --with-readline-dir은 ruby-1.8.7-p371의 configure 스크립트에서 인식되지 않으므로 libordline 5.2를 사용하기 위해 jordoh의 솔루션을 사용해야합니다. –

0

OS X에서도 마찬가지입니다. @ fl00r의 픽스가 작동합니다 (붙여 넣기가 붙여 넣기를 시도하는 동안 아무 키나 누르십시오.) @jesvs 픽스가 작동하고 영구적입니다.

4

간단히 말해서 readline을 사용하면 도움이되지 않습니다. 최소한 select() 시스템 호출이 반환되기 전에 만료되기를 기다리는 OSX 10.7에서는 libreadline에 더 심각한 문제가있는 것으로 보입니다. 데이터가 사용 가능한 경우에도 마찬가지입니다.이 골칫거리를 해결

내 해킹,이다 :

cd $rvm_path/src/readline-6.2 
vi config.h 
(change the line "#define HAVE_SELECT" -> #undef HAVE_SELECT) 
make install 
+0

감사합니다. 이것은 OS X 10.7 Lion에서 저에게 맞는 유일한 해결책입니다. –

+0

우분투 12.04와 함께 사용합니다. jesvs의 수정은 나에게 아무 것도 바뀌지 않았다. –

3

내가 우분투 12.04에 REE를 사용하여 동일한 문제로 실행하고 성공하지 여기에 나열된 모든 솔루션을 시도했다. 나를 위해 최종 작업 솔루션이었다 :

  1. apt-get을 libreadline6-DEV apt-get을 설치 libreadline-GPLv2에-DEV
  2. RVM 제거
  3. 은 1.8.6
  4. RVM 1.8.6
  5. 를 설치, 제거

이 문제는 libreadline6-dev와 약간의 비호 환성이있는 것으로 보입니다. libreadline6-dev가 시스템에 존재하면 Ruby를 컴파일 할 때 libreadline6-dev가 사용되며 문제가 발생합니다. 이것은 루비 컴파일시 전달되는 --with-readline-dir 옵션에 상관없이 발생합니다. 불행히도, 우분투 최신 버전에는 libreadline5-dev가 없지만 libreadline-gplv2-dev가 있습니다.

+0

Oneiric보다 오래된 Ubuntu 버전을 실행하는 사람들을위한 추가 정보 http://www.williambharding.com/blog/rails/fix-irb-pasting-is-super-slow-typing-in-ruby-debugger-has-lag / – wbharding

관련 문제