spring的问题-能耗、学习曲线

news/2024/10/2 3:32:07

说实话,在过去将近20年中,spring对于it行业的帮助还是很大的,尤其是信息系统建设方面。

但在我看来,spring的发展也许进入了一个困局。

 

开始的时候,spring的确是一个还是算小巧的工具,但是现在已经变成了一个庞杂的大东西。

的确,它好像什么都可以解决,但是变得过于繁复,庞大,性能上也有下降。

从工程的某个角度看,spring的确加快了系统的建设!但看待一个事物,总是要多个方面,不能失于片面。

 

运维问题

从运维角度看,用java写的东西,天然就不是一个绿色的程序,应为java本身就很慢,再加上spring自身复杂的结构,导致一个功能可能变得

很慢,所耗费的能源还是很客观的。

有人做了研究,具体什么标准不太清楚,但是大体反应了一个现实:

Which Programming Languages Use the Least Electricity? - The New Stack

 

注:这个表格来自下文的论文中

 java是c的大概两倍,但是考虑到spring的复杂结构,我觉得至少是3倍的关系。考虑到全球有那么多服务器都是运行java程序,可想而知,这个能耗。

 

还有一个参考文献:Ranking programming languages by energy efficiency (states.github.io)

这是在计算机科学杂志上发表的:

 

现在人们还不是太关注这个方面,但是考虑到恶劣的自然环境和日益减少的能源,我们的程序是不是应该更应该考虑运行效率了?

对于现在这个世界,节能应该是一直需要关注的事情。

 

最近人工智能芯片的问题,充分说明了节能的重要性。

只可惜,我们的科学家和工程师并没有认真做好他们自己的事情,这也侧面反应了为什么我们的某些方便和外国人还是有很大的差距,因为首先

态度就是一个巨大的问题,我们太缺乏学术心态,缺乏长远的目光。

 

学习角度

从学习角度出发,spring正在变得越来越复杂。此外它所推崇的方便可能让它自己的效率进一步下降,进一步复杂。

考虑到这是一个很流行的框架,也许大家需要浪费越来越多的时间了。

当然,也有人认为,这是一个学习曲线还算不错的框架,我也承认这个。但我认为,作为一个javaee框架,没有必要搞得那么复杂。

如果只是用spring开发javeee应用,我建议还是尽量只使用spring的核心部分即可,其它所谓的security等等之类的东西,也许需要慎重考虑。

如果考虑到用于开发项目,那么也许脱离这些复杂的东西会可能更好一些。

我只能说,spring有时候的确是有点方便,但是我们需要考虑它的代价。做事情总是顾头不顾尾,迟早会出问题,我特别讨厌那样的人。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/44894.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

面经梳理-java多线程其他

梳理java多线程其他内容面经题目 Threadlocal使用场景?原理?如何保证内存不泄露? ThreadLocal使用场景 不加锁的情况下,多线程安全访问共享变量,每个线程保留共享变量的副本(线程特有对象),每个线程往这个ThreadLocal中读写是线程隔离。 ThreadLocal原理 Thread类有一个…

Linux安装JDK环境

1. 下载安装官网地址:https://www.oracle.com/java/technologies/downloads/?er=221886#java11本地包下载后 传入 路径 /usr/local/ 下。  不使用 xftp 也可以直接拖入。如果无法拖入需要安装上传下载文件包:# 安装上传下载文件包 yum install lrzsz -y解压包:# 将jdk-11.…

光子晶体板相关参数优化

筛选能带的方法 在重复23年science论文时,使用了ratio和ratio2,就是判断局域在板附近的程度 注意还要筛选Q因子:if(ewfd.Qfactor>1e6,1,0) ‍ 不用整个BZ都扫描,这样太慢了 就扫两个点 求带隙 ‍ 在派生值-计算中,可以计算一些表达式的表格!辅助筛选,精确知道一些点的…

SpringBoot3整合SpringDoc实现在线接口文档

写在前面 在现目前项目开发中,一般都是前后端分离项目。前端小姐姐负责开发前端,苦逼的我们负责后端开发 事实是一个人全干,在这过程中编写接口文档就显得尤为重要了。然而作为一个程序员,最怕的莫过于自己写文档和别人不写文档 大家都不想写文档,那这活就交给今天的主角S…

Asp.net core依赖注入服务生存期踩坑记录

Asp.net core依赖注入服务生存期踩坑记录 写在开头 今天我本想实现组件全局共享数据(状态管理),保存工厂名,用户登录id,设备编码等字段,以便全局共享。 但我在a组件设置的值到了b组件就不见了。 遇到的问题,与依赖注入服务生存期有关,我们知道依赖注入服务一共有三种:…

mysql手册

查看mysql的配置文件位置 mysql --help | grep "Default options" -C 1输出如下,可知mysql读取默认选项的位置修改mysql cmd提示符 修改提示符有两种方法配置文件 prompt命令 在mysql cmd中使用prompt [text]设置提示符格式对于不是控制字符的字符,则原样输出 单独…

面经梳理-java多线程基础

梳理java多线程基础相关面经题目 线程和进程的概念?守护线程是干什么的?常见的守护线程有哪些? 线程和进程的概念 进程是程序的运行实例,是程序向操作系统申请资源的基本单位,线程是进程的一条执行路径。 Java的线程分为两种:用户线程和守护线程。守护线程作用是为其他线…

VSCode 中 Vue3:找不到模块 “./XXX.vue” 或其相应的类型声明

问题! 代码可以正常运行,但 VSCode 报错: 找不到模块 “./App.vue” 或其相应的类型声明别再去愚昧的添加 d.ts 啦! 只需在 VSCode 安装 TypeScript Vue Plugin (Volar) 拓展享受完全体的 Vue 导入!