Skip to main content

Dotenvx的软连接的内存占用情况

· 2 min read
Libing Chen
Java程序员,兼全栈、Rust和AI开发

dotenvx link <command>命令可以创建命令软连接,这个是对原有命令的封装。当你执行软连接命令式,其实是由Dotenvx命令行来执行的, 然后会加载配置文件,然后再执行原命令,这样就完成了对原命令的.env配置集成。

在日常中,只要涉及到诸如数据库的场景,数据库的链接信息已经在.env或者application.properties中配置好啦,如MySQL, 我通常会执行dotenvx link bin/mysql创建对应的dotenvx软连接,然后执行./bin/mysql, 就可以登录配置项指定的MySQL数据库了,不需要输入任何账户密码,非常方便。 同时也不用担心密码泄露的问题,之前都是保存在某一justfile中,密码也是直接写到文件中的,你当然可以不写, 但是公司内部的防弱密码政策,完全让我记不住这些密码,手动输入非常麻烦。

那有同学会问,使用这种软连接方式会不会增加额外的内存占用呢?效率高吗?这里给大家做一个简单的对比。

执行分为以下三种方式:

  • 直接mysql命令登录MySQL,mysql命令行为软连接
  • justfile中执行mysql命令登录MySQL
  • 通过dotenvx link bin/mysql创建软连接,然后执行软连接登录MySQL

最后各个方式启动后占用的内存情况如下:

Dotenvx Link MySQL

通过上述情况,我们可以得出以下一些结论:

  • 软连接方式启动MySQL命令行,好像比通过绝对路径方式启动MySQL占用的内存还要多一些
  • justfile方式启动MySQL命令行,占用的内存比dotenvx稍微低一些,这个可以理解,Dotenvx要进行对应的解密操作,占用的内存更多一些
  • dotenvx采用绝对路径方式启动MySQL,占用的内存要比通过软连接方式启动的MySQL命令行低一些

总体下来,使用dotenvx link方式启动MySQL命令行,占用的内存并没有明显增加,只增加了一点点,完全可以接受。