问题

当打开 windows powershell 的时候可能需要非常长的时间进行加载,就比如我的,打开一次居然需要足足 5 秒,这也太浪费生命了。
原因
本质上是因为个人配置文件($PROFILE)或系统配置文件包含太多代码又或者是过多的加载模块自动加载。
解决方法
查看位置
先要查看一些配置文件在哪里:
echo $PROFILE
输入后可以看到位置,找到这个后缀为 .ps1 的文件。
问题原因
使用记事本打开,当然也可以使用 vscode 打开,更好看一些。
这里就可以看到启动慢的原因了。

可以看到我的 profile 文件只有这么几行代码,是 miniconda 引起的。(是因为我之前输入了 conda init 这个指令,不过你若想要使用 miniconda 这个指令是一定要输入的,不然没法激活 conda 安装的虚拟环境。至少我是遇到过必须让我初始化的状况,有时好像也不需要初始化)
只要打开就会进行一次初始化。
所以相当的慢。
优化
可以把上面的代码都注释掉,使用我下面给出的代码。
function Initialize-Conda {
If (Test-Path "D:\Program\miniconda3\Scripts\conda.exe") {
Write-Host "Init Conda Env..." # 这是提示词,删了也无所谓
(& "D:\Program\miniconda3\Scripts\conda.exe" "shell.powershell" "hook") | Out-String | ?{$_} | Invoke-Expression
} # 这个if语句就是我上面红框框起来的,根据自己的实际情况更改。
}
# 创建conda命令别名,使用condac进行初始化
Set-Alias -Name condac -Value Initialize-Conda保存,然后重启 powershell。

此时直接就进入了,不用等待。

输入 condac 指令即可初始化。
然后激活环境。
理念
采用了”延迟加载”模式,其主要优点是:
- 提高PowerShell启动速度,因为conda初始化不再在启动时执行
- 只在实际需要时才加载conda,节省不使用conda时的系统资源