本次升级进行于2021年10月2日到8日,利用了一点晚上空闲的时间升级一下博客。
上次看别人的博客专门有一个专栏是用于访客对博主进行留言的,诶,这个功能不错,这样我就可以看到大家对我这博客系统的意见了。 然后就定一下来要弄了,直到国庆有一段时间空闲出来才开始正式着手完善。
功能说明:留言板功能其实跟之前的博客评论功能差不多,只是多了一个分页和一个发布表情包。
留言功能是直接仿照评论功能又写了一遍逻辑代码,然后按满10条留言就进行一次分页,基本没什么难度。
发布表情包这个是在大佬的博客里面获得灵感的( http://xiongsihao.com/Messages ),把大佬的留言板页面在浏览器下载下来之后发现那个表情包用的其实还是本地的图片(顺便还把人家的表情包图片也下载下来了[狗头保命]),然后就想到了可以把表情包的 HTML 引用语句也作为留言存储在数据库,这样在加载的时候就能达到加载出表情包图片的效果了,如下图:
再次感谢大佬的博客
前端样式的问题我就不说了,努力改就行了。
这个版块是使用 ECharts 进行统计数据可视化,数据的展示原理上没什么难度,唯一需要动一下脑筋的就是数据怎么进行统计。
数据库方面: 我这里在数据库创建了一张新的数据库表,里面只有7列,分别用来记录7天的访问人数,如下图:
统计逻辑实现: 然后在逻辑代码部分,我把之前统计每篇博客的访问量那里也修改了一下,让它在对每篇博客的views进行加一的时候也对当天访问人数加一操作,如下图:
这样,当天的访问人数这里解决了,剩下的就是如何更新7天的浏览人数了,我这里设置了一个每天的定时任务(0点执行),对数据的数据进行更新,如下图:
这样,浏览数据更新的基本功能就完成了。
前一段时间学习了关于 JVM 虚拟机的内容,这两天就想着对项目进行一下调优。
我们先来看看Java堆的大小
元空间大小
我们看到,我们的程序的堆空间最大大小是4个G!!!这太不合理了,我们设置一下堆的最大大小和默认大小,如下:
-Xms400m #堆的默认大小
-Xmx400m #堆的最大大小
-Xverify:none #关闭绝大多数的验证措施,以缩短虚拟机类加载的时间(默认我们的代码都是正确的,不用类型检查之类的)
然后我们这个博客系统追求的是响应时间,所以我们使用 ParNew + CMS 收集器的搭配组合,来尽量提高响应速度
-XX:+UseConcMarkSweepGC #老年代启用CMS收集器
-XX:+UseParNewGC #新生代使用ParNew收集器
总的参数如下:
-Xcomp # 强制使虚拟机进入编译模式
-XX:MetaspaceSize=100m
-XX:MaxMetaspaceSize=100m
-Xms400m
-Xmx400m
-XX:+UseConcMarkSweepGC
-XX:+UseParNewGC
-Xverify:none
最后我们带上 JVM 的参数在服务器执行我们的 jar 包,如下:
nohup java -Xcomp -XX:MetaspaceSize=100m -XX:MaxMetaspaceSize=100m -Xms400m -Xmx400m -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -Xverify:none -jar demo2-0.0.1-SNAPSHOT.jar &
最后测试发现网站响应、加载速度较之前大概有1~2s的提升。