哦-my-zsh很慢(加载时间大约10秒)

时间:2016-11-25 05:33:34

标签: terminal zsh oh-my-zsh zshrc

我正在使用:

#pragma mark - WKNavigationDelegate

- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler{

    NSLog(@"%@",navigationAction.request.allHTTPHeaderFields);

    NSString *accessToken = @"Bearer 527d3401f16a8a7955aeae62299dbfbd";
    NSMutableURLRequest *request = [navigationAction.request mutableCopy];

    if(![[request.allHTTPHeaderFields allKeys] containsObject:@"Authorization"]){
        [request setValue:accessToken forHTTPHeaderField:@"Authorization"];

        decisionHandler(WKNavigationActionPolicyCancel);
        [Helper hideProgressHUD];
        [webView loadRequest:request];

    } else {
        decisionHandler(WKNavigationActionPolicyAllow);
    }
}

问题是,即使打开新的终端标签,终端加载时间也会太慢,大约10秒。

我在这篇博文中尝试了解决方案:http://osxdaily.com/2010/05/06/speed-up-a-slow-terminal-by-clearing-log-files/但这对我没有帮助。

Mac OS X 10.10.5 (Yosemite)
zsh 5.0.5
oh-my-zsh

由于

4 个答案:

答案 0 :(得分:1)

请在主题中评论所有git提示代码。

我的mac上的zsh非常慢。任何命令,比如cd,ls需要2-5秒,但在我评论了主题中的所有git提示代码后,事情变得完全不同。

再次享受顺利!

答案 1 :(得分:0)

节点给我带来了麻烦,这是有效的解决方案:

在我的.zshrc

# configure node version manager
export NVM_DIR=~/.nvm
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" --no-use # This loads nvm
alias node='unalias node ; unalias npm ; nvm use default ; node $@'
alias npm='unalias node ; unalias npm ; nvm use default ; npm $@'

欲了解更多信息,请访问: https://github.com/creationix/nvm/issues/539#issuecomment-245791291

由于

答案 2 :(得分:0)

这些是我用来优化Shell启动速度并减少执行命令时滞的步骤-

  1. 如果您使用的是powerlevel9k,则建议立即切换到powerlevel10k

Powerlevel10k是Zsh的主题。它强调速度,灵活性和开箱即用的体验。它是对流行的Powerlevel9k zsh主题的重新实现。给定相同的配置,它看起来完全一样,但提示速度快10到100倍。它在堆栈的每个级别上都进行了优化,一直到使用已修补版本的libgit2来进行,扫描版本库的速度比原始版本快4倍。即使不是由具有即时提示等功能的主题引起的,它也可以消除Zsh启动延迟。

  1. 转到“首选项”->“配置文件”->“常规”->“命令”,然后选择“命令”而不是“登录外壳”选项,并将以下命令粘贴到它附近的框中。
login -pfq username /usr/local/bin/zsh -il

现在开始新标签页时,您不会看到上次登录时间。如果在/ usr / local / bin / zsh位置中不存在zsh,则需要使用brew安装zsh。 Mac提供的默认zsh位于/ usr / bin / zsh,并且可能使用的是5.2之类的旧版本,当与iTerm或oh-my-zsh一起使用时,速度可能会变慢。

  1. 要快速粘贴到zsh中,请在终端中执行以下命令。
mkdir -p $ZSH_CUSTOM/lib && touch $ZSH_CUSTOM/lib/misc.zsh
  1. 第2点应该已经解决了缓慢的登录时间。但是为了安全起见,请执行以下命令
mkdir -p .hushlogin
  1. 您可能正在使用大量的插件,这些插件很慢并且会产生滞后。您需要指出这些插件并将其删除。为此,您将需要zsh分析。点击此链接以获取更多详细信息-

https://stevenvanbael.com/profiling-zsh-startup

答案 3 :(得分:0)

我知道这是一个非常老的问题,但是我尝试了所有以前的答案,但一段时间后问题又回来了。我做了很多事情,完全摆脱了oh-my-zsh。但是真正的罪魁祸首是.zsh-history。我的历史记录文件包含1000多个命令,并且正在减慢zsh的速度。清除后,zsh从加载后的10秒变为3秒。

这是一个自动执行此操作的简单脚本。

HISTORY="~/.zsh-history" # Path to zsh history file
HISTORY_LOG="path/to/where/you/wan't/to/save/history"
MAX_HISTORY=100 # Maximum lines to keep in history

if [[ $(expr $(wc -l < $HISTORY) \> $MAX_HISTORY) = "1" ]]; then
    cat $HISTORY >> $HISTORY_LOG && echo '' > $HISTORY
fi

添加此脚本以在启动时运行,当它超过100行时,它将清除您的历史记录。我将它保存到另一个位置,以防以后找不到它。

您还可以更改脚本以在历史记录中始终保留100行。那就是删除前n行,以使行数保持为100。但是我个人更喜欢这种方法。