Summary: | [FR] zsh startup time optimization | ||
---|---|---|---|
Product: | Sisyphus | Reporter: | Michael Shigorin <mike> |
Component: | zsh | Assignee: | Fr. Br. George <george> |
Status: | CLOSED NOTABUG | QA Contact: | qa-sisyphus |
Severity: | enhancement | ||
Priority: | P3 | CC: | arseny, evg, george, ktirf, wrar |
Version: | unstable | ||
Hardware: | all | ||
OS: | Linux |
Description
Michael Shigorin
2009-08-18 18:22:01 MSD
$ dpkg -L zsh |fgrep .zwc /usr/share/zsh/functions/VCS_Info/Backends.zwc /usr/share/zsh/functions/MIME.zwc /usr/share/zsh/functions/Zle.zwc /usr/share/zsh/functions/Zftp.zwc /usr/share/zsh/functions/TCP.zwc /usr/share/zsh/functions/Exceptions.zwc /usr/share/zsh/functions/Calendar.zwc /usr/share/zsh/functions/Completion/Solaris.zwc /usr/share/zsh/functions/Completion/Base.zwc /usr/share/zsh/functions/Completion/Zsh.zwc /usr/share/zsh/functions/Completion/X.zwc /usr/share/zsh/functions/Completion/Unix.zwc /usr/share/zsh/functions/Completion/Mandriva.zwc /usr/share/zsh/functions/Completion/AIX.zwc /usr/share/zsh/functions/Completion/Debian.zwc /usr/share/zsh/functions/Completion/Darwin.zwc /usr/share/zsh/functions/Completion/Cygwin.zwc /usr/share/zsh/functions/Completion/Redhat.zwc /usr/share/zsh/functions/Completion/Linux.zwc /usr/share/zsh/functions/Completion/BSD.zwc /usr/share/zsh/functions/Completion.zwc /usr/share/zsh/functions/Prompts.zwc /usr/share/zsh/functions/VCS_Info.zwc /usr/share/zsh/functions/Newuser.zwc /usr/share/zsh/functions/Misc.zwc # move this to a non-root section; also drop it for cross-compiles awk '/^#define FPATH_DIR/ { head=$$3; gsub(/"/,"",head); }; /^#define FPATH_SUBDIRS/ { $$1=""; $$2=""; gsub(/[" ]/,""); tail=$$0; } END { printf "%s/%s\n", head, tail; };' obj/Src/zshpaths.h >obj/Src/zshpaths.temp debian/tmp/bin/$(package) -fc 'setopt extendedglob; for i in debian/tmp/'`cat obj/Src/zshpaths.temp`'; do zcompile -U -M $$i.zwc $$i/*~*.zwc(^/) ; chmod 644 $$i.zwc ; done' В результате zcompile'яции $fpath размер пакета увеличивается чуть более чем в два раза (на 111%). Я считаю, что несущественый (за счёт использования autoload) прирост производительности (который так никто и не измерил) этого не стоит. Экономить на спичечном /etc/zshrc тем более глупо. Я мерил, но не удалось выловить фактор, который приводил к собственно тормозам. То есть на той же системе у нового юзера с пустым ~/.zshrc время запуска zsh было намного меньше. Так что предлагаю по первому s/WONTFIX/NOTABUG/, а по второму -- если возникнут аргументы в виде патча, то вернёмся к ним _отдельной_ багой ("отпилить динозавров, закомпилять за счёт сэкономленного базовое или хоть базовые *.zwc отдельным подпакетом). |