2014-05-12 3 views
7

어제, 나는 :q님께 잠시 동안 이맥스를 시도해보십시오. Elisp (VimScript보다 100 배 이상)을 사용하기 시작했는데 처음 설치했을 때 (yum 통해) 아무 것도 변경하지 않았더라도 시작하는 데 약 30 초가 걸렸으며 (GUI와 -nw).이맥스는 믿을 수 없을만큼 오랜 시간이 걸립니다.

Loading /usr/share/emacs/site-lisp/site-start.d/desktop-entry-mode-init.el (source)...done 
Loading /usr/share/emacs/site-lisp/site-start.d/rpmdev-init.el (source)...done 

파일 내가 설치된 RPM 패키지에 고유 한 것 같다 :

은 내가 *Messages* 버퍼를 확인했습니다. 나는 그들의 이름을 바꾸는 것을 시도했다, 그러나 아무 다름도 없었다. 여전히 30 초가 걸립니다.

나는 이맥스를 종료하지 않고 (부분적으로 만 중단하고) 모든 것을 다하려고 노력했지만 부분적으로는 두 개의 이맥스를 열 때 좋겠다. 특히 터미널 에뮬레이터를 사용하는 경향이 있으므로 split 함수 대신 tmux 같은 것.

나는 이맥스가 빔보다 느리게로드된다는 것을 알았지 만, 이것은 새로 설치하는 것에 어리석은 것처럼 보입니다. 무슨 일이 일어 났는지 아무도 모르나요?

감사합니다.

+2

; 원하는만큼의 프레임을 열 수 있습니다 (로그인 할 때'emacs -d'를 시작하고 파일을 편집하기 위해'emacsclient'를 실행하십시오). 그러나 30 초의 시작 시간은 정상이 아닙니다. 이상한 일을하는 꾸러미가 있습니다. 'emacs -q'가 빨리로드됩니까? 그렇지 않다면, * Messages * 버퍼를 보아라. 어느 init 파일이 오랜 시간이 걸리고 있는가? 어디서 Emacs를 얻을 수 있었습니까 (어느 배포판의 패키지)? 그리고 느린 init 파일은 어디서 나왔습니까? – Gilles

+0

'emacs -q'가 빠르지 않습니다. 두 init 파일을 모두 제거해도 문제가 해결되지 않습니다. 나는 yum install emacs를 사용하여 설치했다. yum에 따르면'emacs.x86_64','1 : 24.3-11.fc19'라고합니다. – jocap

+4

오, 미안, 나는 물어야했다 :'emacs -Q'가 더 빠릅니까? ('-q'는 개인 init 파일을로드하지 않습니다.'-Q'는 시스템 초기화 파일도로드하지 않습니다.) (그것이 그렇다고 생각한다면) 시스템 패키지 중 하나가 범인입니다. 그렇지 않으면 더 큰 총을 요구합니다. 'strace -tt -o emacs.strace emacs -q -nw'를 실행하고 추적을 게시하십시오. (이것은 너무 오랫동안 멈추는 시스템 패키지 일지라도 유용 할 수 있습니다.) – Gilles

답변

11

이맥스의 문제 파일은 말한다 :

*** Emacs startup on GNU/Linux systems (and possibly other systems) is slow. 

This can happen if the system is misconfigured and Emacs can't get the 
full qualified domain name, FQDN. You should have your FQDN in the 
/etc/hosts file, something like this: 

127.0.0.1 localhost 
129.187.137.82 nuc04.t30.physik.tu-muenchen.de nuc04 

The way to set this up may vary on non-GNU systems. 

이 "느린 시작"일반적으로 타임 아웃에서 온다, 30 대를 잘 대해 소리.

참고 사항 :이 속도 저하를 유발하는 DNS 조회는 거의 모든 컴퓨터에 고정 IP 주소가있는 요일에 중요하거나 유용한 것으로 간주되었습니다. 요즘이 방법으로 수집 된 정보는 노력을 정당화하지 않으므로 Emacs-25부터는 이맥스가이 DNS 조회를 수행하지 않으므로이 문제는 더 이상 존재하지 않아야합니다.

+0

/etc/hosts에는 문제가없는 것으로 보입니다. 그것은 말합니다 : '127.0.0.1 localhost.localdomain localhost' ':: 1 localhost6.localdomain6 localhost6'. 내가 너의 것으로 바꿨다. 도움을받지 못했다. – jocap

+0

스테판이 정확합니다. 'hostname -f' 명령이 값을 반환하면 정규화 된 도메인 이름이 설정되고 emacs가 빠르게 시작됩니다. – Gabe

1

좋아, 나는 (기발하고 일시적인) 해결책이있다. 나는 dhclient em1을 실행하여 이맥스가로드되기까지 30 초가 걸리는 인터넷에 접속해야한다. 네트워킹을 비활성화

sudo pkill dhclient 
sudo ifconfig em1 down 
emacs -nw -daemon 2> /dev/null 
sudo ifconfig em1 up 
sudo dhclient em1 

는 데몬으로 이맥스를 실행 및 네트워킹을 다시 할 수 있습니다 : 그래서, 이미있는 것은 나는 다음과 같은 않는 이맥스를 시작하는 쉘 스크립트를 사용 dhclient em1를 실행합니다. 못 생겼지 만 지금은 효과가 있습니다. 다른 사람이 더 좋은 대답을한다면, 나는 그것을 듣게되어 기쁠 것입니다. 물론 em1은 이더넷 장치로 대체되어야합니다 (아마도 eth0 일 것입니다).

1

emacs에서 시작하는 데 약 15 초가 걸리는 smilar 문제가있었습니다. 제 경우에는 그 이유가 DNS 시간 초과입니다. 어떤 이유로 든 기숙사 DNS에서 실패한 역방향 조회 (호스트 127.0.0.1)에 약 10 초가 걸립니다. DNS 네임 서버 (8.8.8.8)로 DNS 서버를 대체하면 거의 즉각적인 "찾을 수 없음 : 3 (NXDOMAIN)"응답이 생성됩니다. 동시에 이맥스의 시작 시간은 2 초 미만으로 떨어졌습니다. 누가 DNS 문제의 방향으로 나를 지적 해 준 @ Stefan에게 감사한다.

편집 : Network Manager에서 추가 NS로 google nameserver를 추가하면됩니다. (즉, 귀하의 결심.conf의이 순서로 NSS 있습니다

nameserver a.b.c.d 
nameserver 8.8.8.8 

) 사실 이맥스 사용자의 많은 세션 당 한 번 이맥스를 시작

관련 문제