shell 打开很慢是啥原因

2016-11-21 11:08:57 +08:00
 homfen

如图,打开 iterm 有个延迟,才能输入,用了 oh-my-zsh ,是啥原因? log 太多了?

9130 次点击
所在节点    程序员
61 条回复
dodo20120
2016-11-21 16:02:03 +08:00
@bjzhou1990 有没有 nvm 替代品?以前是 rbenv 慢,现在 rbenv 好多了,这 nvm 不能忍了要
bjzhou1990
2016-11-21 16:04:36 +08:00
@dodo20120 nvm 是用来更新 node ?直接 brew 不就好了
zhouzm
2016-11-21 16:14:55 +08:00
@dodo20120 你用的是 antigen 吗?我刚才试了一下,不加载 nvm 和 rbenv 约 1.5s ,加载大约 2s ,都是 antigen
reset 后运行一次,测试第二次的时间。

加载了以下模块:
antigen use oh-my-zsh
antigen bundle pip
antigen bundle nvm
antigen bundle rbenv
antigen bundle autojump
antigen bundle brew
antigen bundle brew-cask
antigen bundle colored-man
antigen bundle z
antigen bundle zsh-users/zsh-syntax-highlighting
antigen bundle zsh-users/zsh-history-substring-search ./zsh-history-substring-search.zsh
antigen theme agnoster
antigen apply
singlepig
2016-11-21 16:24:40 +08:00
有同感,感觉是插件装多了,一些用不到的功能可以禁用掉。
henryshen233
2016-11-21 16:44:20 +08:00
要更新了吧
dodo20120
2016-11-21 16:48:27 +08:00
@zhouzm 用的 oh-my-zsh, nvm 慢是众人所知的,直接用 bash 我都觉得这货慢,不过将就用吧
zhx1991
2016-11-21 17:06:17 +08:00
zsh 加载东西多

但是这个不是很影响吧? 谁成天关闭打开 shell
wxcszh
2016-11-21 17:15:15 +08:00
我的需要 3 秒多。。 oh-my-zsh 加载东西有点多。。。
homfen
2016-11-21 17:21:19 +08:00
@dodo20120 还真装了 nvm
homfen
2016-11-21 17:24:28 +08:00
@zhouzm 这个图貌似加速过了,实际也是 3~4 秒,换成 prezto 后现在是 1 秒左右,可以接受了
homfen
2016-11-21 17:27:42 +08:00
@bjzhou1990 nvm 这么坑,主要是 node 版本切换方便,不然也不装了
homfen
2016-11-21 17:36:35 +08:00
就是 nvm 搞的鬼, prezto 加了 nvm 的配置也变慢了
knightdf
2016-11-21 17:44:30 +08:00
请问这个 1s,2s,3s 有什么意义.....?常年不关 shell 挂个 tmux 的重来不关心也没感觉
ynyounuo
2016-11-21 17:46:05 +08:00
@homfen nvm 众所周知的慢啊
只需要版本切换的话,用 n 就好
cxbig
2016-11-21 17:51:25 +08:00
加载的东西太多,建议把不常用的 plugin 去掉。
mcfog
2016-11-21 18:17:55 +08:00
fish 秒开,而且不需要什么配置开箱即用

当然,别装 oh-my-fish
dodo20120
2016-11-21 21:16:32 +08:00
@mcfog
以前用了阵 fish ,但不支持 bash
lilydjwg
2016-11-21 21:27:20 +08:00
我以前历史记录 10w 行,结果加载很慢,改成 2w 了。现在基本能在 0.2 秒内启动。

你可以 zsh -x 然后看看哪里比较慢。我忘记了当时我是怎么找到瓶颈的……
lilydjwg
2016-11-21 21:31:24 +08:00
PS: 我不用 oh-my-zsh ,东西太多,怕太慢或者出现意外的行为。我曾经对我的 zshrc 优化过,能少用外部命令就少用外部命令。现在 zsh 从启动到看到第一个提示符,共有六次 execve ,一次 zsh (自己),两次 uname ,一次 stty ,一次 systemctl --version ,一次 git 。根本不用 grep ,都用内建的正则+重定向搞定了。
lilydjwg
2016-11-21 21:39:51 +08:00
@ppwangs zsh 又快又安全*补全又强大。另见 [http://www.slideshare.net/jaguardesignstudio/why-zsh-is-cooler-than-your-shell-16194692](Why Zsh is Cooler than Your Shell)。

* 指的是粘贴多行文本也不会立即执行,使得用户有机会确认。特别是从网页复制命令的时候,网页可以把部分命令隐藏起来,但是[会复制到]( https://web.archive.org/web/20150629051828/http://www.soimort.org/posts/154/)。不用插件的话,此功能至少需要 zsh 5.0 。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/322018

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX