前言
事情的起因是这样的。那天我还是像往常一样撸代码,突然看到 idea 有个 Run with Java Flight Recorder 的选项。
出于好奇心,我百度了下,大致的意思是这是一个监控工具,需要在 vm options 中添加
-XX:+UnlockCommercialFeatures
配过 java-agent 代理的对这个配置应该并不陌生,很快便找到并添加了上述配置
跟着几篇文章做了以后,发现监视功能并没有生效。随后又被喊去做别的事了,也就没怎么理会。 直到第二天,打开 idea 的时候,突然报了这个问题
努力回想,难道是前一天修改了 vmoption 有关?
正文
那就继续解决前一天留下的坑吧。
vmoptions 文件一般有存在于两个目录
一个是 idea 安装目录的 bin 目录下
然后一般 idea 启动会去读取用户目录下 , .IntelliJIdea/config 里的缓存数据,但是我找到用户目录,发现下面并没有 ..IntelliJIdea 文件夹。
那我昨天修改的配置存到哪里去了?
后来经过同事的提醒下,下载了号称最强大的文件管理工具 Everything
可能是版本问题吧,配置文件存到了用户目录/AppData/Roaming/JetBrains/IntelliJIdeaxxxx 目录下去了。去掉昨天那行配置,再次重启,又是熟悉的启动界面~
总结
1 Everything 的搜索速度确实很快~
2 留意到 not supported by the current version of jvm ,难道前一天没有启动成功是因为 java 版本过低不支持?
Java Flight Recorder简称JFR,OpenJDK从11版本开始支持。它是一个低开销的数据收集框架,可用于在生产环境中分析Java应用和JVM运行状况及性能问题。
题外话
idea 之前也尝试过 2021 的最新版本,但是个人感觉无论是编译还是 maven 拉取镜像的过程都比较慢,所以后来又降回了 2020 的版本
其实很多东西并不是版本越新越好,一些"老"的版本是经过时间的沉淀和"老一辈们"的检验的,我们都是站在巨人的肩膀上编程。
我也曾经幻想过写出一套属于自己工具来,比如想写一个日志收集系统,结果发现已经有了 elk;想写一个 Oauth 的单点登录认证中心,结果发现 Spring 已经帮我们封装好了。
这让我不禁感到有些迷茫,许多框架,虽然已经帮我们提高了不少工作效率,但是会让我们产生一种惯性思维,觉得有些事,交给框架去做就好,我们只需会用,久而久之,我们就会变成代码的搬运工,也就是 码农 。但是回过头来,让我们说说其中的原理,甚至是流程,可能都说不出个大概。
最近有个同事问我,如果离开了 Spring ,你还会写代码吗。我 review 了一下代码,果然大多数功能都是 Spring 提供的。
如果,我连写个 hello world,编译后运行都需要再回课本里学一边,那我们继续学习的意义,又在哪呢。