일부 시스템에 비표준 SSH 연결이 있습니다. 에코 시간은... 0.2초 정도입니다.
어쨌든, 입력 파일 없이 vim을 시작하면 약 3~4초라는 긴 지연이 발생하고, 지연 시간이 짧은 SSH 연결(예: 동일한 네트워크 세그먼트 내)을 통해 연결하면 '나는 그렇지 않다'는 경험을 합니다. 이 지연은앞으로vim은 터미널에 아무 것도 쓰지 않았으므로 나에게 무엇이든 기대하기 전에 연결을 통해 통신을 시도하는 원인이 무엇인지, 정확히 무엇을 통신하는지 알고 싶습니다.
나는 strace -rr을 사용하여 0.1초보다 긴 차이점을 찾았고 다음과 같은 줄을 발견했습니다.
0.284973 recvfrom(3, "\1\0\v\0\0\0\340\1", 8, 0, NULL, NULL) = 8
0.133300 recvmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\1\0\1\0\0\0\0\0\1\205\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", iov_len=4096}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 32
0.138255 recvmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\1\0\2\0\0\0\0\0\377\377?\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", iov_len=4096}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 32
0.148123 recvmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\1\10\4\0M\1\0\0\37\0\0\0\0\0\0\0001\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., iov_len=4096}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 1364
(이것이 계속해서 반복됩니다.)
이 메시지는 어떻게 되나요? 그리고 - Vim이 이러한 통신 시도를 건너뛰고 더 빠르게 시작하도록 하려면 어떻게 해야 합니까?
답변1
범인은 X11 포워딩입니다. 이 연결에 대해 X11 전달을 활성화했으며 X11 응용 프로그램이 너무 느리고 응답하지 않아 어떤 것도 사용하지 않았지만 전달 이름이 활성화로 변경되었습니다.
비활성화하거나 다음을 실행하여 눈에 띄지 않게 만드는 경우에도:
unset DISPLAY
vim은 매우 빠르게 시작됩니다!
나는 vim이 어떤 이유로 X 창에서 실행되어야 하는지 알아내려고 노력하고 있다고 생각합니다. file-descriptor-3 통신은 vim이 열려 있는 소켓에서 X 서버와 통신을 시도한다는 것입니다.
나는 물었다후속 질문vim이 이 작업을 시도하는 것을 방지하는 방법에 대해 설명합니다.
올바른 방향을 알려준 @MarcusMuller에게 감사드립니다.