Emacs가 Linux보다 Windows에서 시작하는 데 왜 더 오래 걸립니까?


14

구성 :

  • 하나의 시스템
  • 듀얼 부팅으로 OS Windows 10
  • 듀얼 부팅으로 OS 우분투 15.10
  • GUI가있는 Emacs 25.0.1

dot-emacs.emacs.d폴더 에 하나의 파일과 모든 것이 있습니다 (패키지도 있습니다 .emacs.d). 이러한 파일은 모두 하나의 Dropbox 폴더에 있습니다.

윈도우 10 일 : 나는를 심볼릭 링크 dot-emacs.emacs.d드롭 박스의 위치에 Windows에서 홈 폴더에서.

리눅스 / 우분투 15.10에 : 나는 또한을 심볼릭 링크 한 dot-emacs.emacs.d내 우분투 홈 폴더 (/ 홈 / 사용자 / 드롭 박스의 위치에.

따라서 Emacs와 관련된 모든 파일은 다양한 운영 체제에서 하나의 Dropbox 폴더에 저장됩니다.

Windows 및 Linux는 동일한 디스크, 따라서 동일한 하드웨어에서 이중 부팅으로 실행됩니다.

Windows에서 Emacs를 시작하면 시작하는 데 7.4 초가 걸립니다 .

Linux에서 Emacs를 시작하면 시작하는 데 2.3 초 밖에 걸리지 않습니다 .

이것은 그래픽 GUI가있는 Emacs와 버전 25.0.1 모두에 해당됩니다. 두 운영 체제는 동일한 SSD 드라이브의 동일한 컴퓨터에 있습니다. 또한 동일한 하드웨어입니다.

다음은 운영 체제에서 동일합니다 (Windows 10 및 Ubuntu 15.10).

  • 이맥스 소프트웨어, 버전 25.0.1
  • 구성 파일 (.emacs.d)
  • 하나의 하드 디스크 (`.emacs.d 내부의 모든 파일)와 두 OS 모두 동일한 SSD에 있습니다.
  • 하드웨어

한 가지 차이점 :

  • Windows 또는 Linux 용 컴파일 된 Emacs는 각각 Windows 또는 Linux 플랫폼에서 실행됩니다. 그것이 유일한 차이점입니다.

Emacs가 Windows보다 Ubuntu에서 시작 시간이 눈에 띄게 짧은 이유를 이해하려고 노력하고 있습니다.


2
이것이 무엇인지 빌드하는 것을 잊었습니다. 또한 베어 Emacs 세션의 시작 시간을와 비교해야합니다 emacs -Q.
사마

(message emacs-init-time)시작 시간을 측정 해야합니다 . 이것은 내가 아는 한 함수에 국한되지 않습니다. 그렇다면 어떻게 측정 할 수 emacs -Q있습니까?
ReneFroger

1
M-x emacs-init-time RET
giordano

1
이 문제도 봅니다 .. emacs는 Linux에서 시작하는 데 5-6 초가 걸리지 만 Windows에서는 최대 1 분이 걸립니다. 고맙게도 Windows는 직장에서 기본 OS가 아닙니다.
Kaushal Modi

1
GCC 때문인 것 같습니다. Windows Emacs는 GCC로 컴파일되며 Windows에서는 크지 않으며 많은 버그가 있습니다. Visual C ++로 EMACS를 컴파일하는 방법이 있다면 성능을보고 싶습니다.
João Paulo Andrade

답변:


21

Op-ed : Windows 속도가 느립니다.

나는 Windows (Cygwin과 native)와 GNU / Linux (Arch) 모두에서 Emacs를 정기적으로 사용하고 있으며이 사실도 알았습니다. 대답은 리눅스가 많은 영역에서, 특히 파일 시스템 작업 1 및 스레딩 / 포킹 작업 2 에서 Windows보다 훨씬 빠르다는 것 입니다.

git, 특히 Magit (상태 버퍼에 대해 꽤 많은 명령을 실행하기 때문에)을 사용할 때 성능의 차이가 가장 두드러지게 나타납니다. Git은 Windows에서 끔찍하게 느립니다. 사실 Dropbox 폴더에서 Windows의 코드를 편집하고 Linux VPS와 동기화 될 때까지 기다린 다음 Windows에서 단순히 코드를 사용하는 대신 SSH를 통해 Magit을 사용하는 것이 너무 느립니다.

이렇게 time git status이맥스 마스터 분기에 나를 위해 아치에 평균 0.025 초 정도 걸립니다. Windows (기본)에서는 0.075-0.100 초, Windows (cygwin) 0.200 초가 걸립니다. 그다지 좋아 보이지는 않지만 Windows에서는 3-4 배 느립니다.

또한 특정 안티 바이러스 소프트웨어 (특히 McAfee)가 막대한 속도 저하를 일으킬 수 있습니다. McAfee의 온 액세스 스캐너를 사용하면 상황이 눈에 띄게 느려집니다. Cygwin의 시간 git status은 최대 2 분입니다. 전원을 끈 후에 만 ​​위에서 언급 한 시간을 얻습니다.


따로 : 방금 변수를 찾았습니다 magit-refresh-verbose.이 시간은 상태가 새로 고침됩니다. 다음은 magit-statusEmacs 마스터 브랜치 에서 버퍼를 새로 고치기위한 몇 가지 시간입니다 .

윈도우 (네이티브)

GNU Emacs 24.5.1 (i686-pc-mingw32) of 2015-04-11 on LEG570
Magit 20151028.1649, Git 2.6.1.windows.1, Emacs 24.5.1
Refreshing buffer `*magit: emacs'...done (9.317s)
Refreshing buffer `*magit: emacs'...done (9.318s)
Refreshing buffer `*magit: emacs'...done (9.357s)

윈도우 (사이 그윈)

GNU Emacs 25.0.50.1 (i686-pc-cygwin) of 2015-07-29 on NAND-LT
Magit 20151015.22, Git 2.5.0.234.gefc8a62, Emacs 25.0.50.1
Refreshing buffer `*magit: emacs'...done (4.609s)
Refreshing buffer `*magit: emacs'...done (4.720s)
Refreshing buffer `*magit: emacs'...done (4.626s)

GNU / Linux (아치, 하드웨어 불량, VPS)

GNU Emacs 25.0.50.6 (x86_64-unknown-linux-gnu, GTK+ Version 3.18.2) of 2015-10-26
Magit 20151028.1649, Git 2.6.2, Emacs 25.0.50
Refreshing buffer ‘*magit: emacs’...done (0.517s)
Refreshing buffer ‘*magit: emacs’...done (0.507s)
Refreshing buffer ‘*magit: emacs’...done (0.523s)

Cygwin의 빠른 속도가 나를 놀라게했습니다.

  1. http://www.slideshare.net/PrincipledTechnologies/comparing-file-system-performance-red-hat-enterprise-linux-6-vs-microsoft-windows-server-2012

  2. /programming/12878980/speed-performance-of-a-qt-program-windows-vs-linux


git 관련 명령의 경로를 추가하려고 했습니까 exec-path? ( stackoverflow.com/questions/16884377/... )에서 내 경우는 크게 속도를 향상시켰다.
joon

1
@joon 예, 모든 관련 경로는 이미 내에 exec-path있습니다.
nanny

나는 리눅스 박스에서 이것을 테스트해야한다. 감사!
joon

@joon 문제 없습니다. Windows에서 속도를 높이는 방법을 찾으면 알려주십시오. 정말 고통입니다.
nanny

1
그러나 문제는 여전히 .. Git 없이도 Windows에서 Emacs가 눈에 띄게 느린 이유는 무엇입니까?
ReneFroger

0

아마도 emacs-server를 설정하여 더 나은 경험을 할 수 있습니다. 이 방법을 사용하거나 emacs를 데몬으로 실행하면 emacsclient를 사용하여 다른 emacs 인스턴스를로드하지 않는 새 창을 시작할 수 있습니다. 좋은 접근 방법입니다. Windows에서 테스트하지는 않았지만 사용 방법을 설명하는 링크가 있습니다. 나는 그것이 당신에게 도움이되기를 바랍니다.

이맥스 서버

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.