java+SpringCloud开发的性能和环保问题
对于大部分商业应用开发程序员而言,使用java+spring是一件幸福的事情。
一般情况下,我们使用cloud开发不是那么重要、精密的应用,这些应用包括例如大型的商业交易,社区等等。
因为这些应用天然对于效率和精密没有高要求,甚至算不上什么要求,如果有的话就是不要太慢,要稳定。
得益于硬件的提升和特定的需求,这样的要求很容易满足。
所以某个角度出发,这些商业应用开发的程序员是最轻松--因为他们不需要考虑太复杂的技术,可以重点提升自己的记忆力和熟练度。
但在能源日益宝贵的今天,我们需要考虑的事情如下:
1.提升程序的执行效率(不改变硬件资源的前提下)
java目前本身是很低效的语言,除了用于开发商业应用,一般不用于开发基础软件,游戏等等,这是因为它的致命问题:太慢了。
Spring+springCloud近年来变得日益庞杂,它的目的是为了商业应用服务--提升开发效率、应用性能和稳定性。
老实说,如果不考虑能耗,spring做得很好。从程序员角度出发,spirng很好,不过现在发布的速度太快了。
我认为spring应该和windows学习,windows甚至能够兼容上个世纪的程序。
在巨型商业交易网络中,部署这样java的程序的服务器以几十万计算,能耗非常惊人。
注意,以下的例子并没有权威和实际的数字佐证,但是大部分程序员都明白,java是多么慢,springCloud也非常慢,为了灵活,它们牺牲了性能。
假定某个商业交易(购物)系统需要部署20万台的服务,每天服务平均每天需要耗费的电量是5度(算上服务器本身+空调等)。
那么一天就是100万度电。
如果采用其它的语言编写,并假定更加高效,我相信每台服务器每天的电耗可以至少降低到4度左右。
那么和java比较,则每天可以节约20万度电量,一年则大概是7300万度电。
假设烧沸1升的水(从20-100),大概是0.1度,那么7300万度可以烧热7.3亿升水,大概是73万吨水。
如果一个家庭一天需要加热的水是60升(比较奢侈了),那么可以为一个家庭加热1210万天,大概是33333年。
如果是一万个家庭,大概是1216天,或者是3.33年。也就是说一年节约的电量,大概可以供一个大型小镇的人烧3年多的开水。
也许上面算的不是很准确,但是应该不会有太大的偏差。
然而资本的恶再加上领导的无能,就可能导致这种浪费的持续性,甚至是越来越严重。
因为资本考虑的短期利益。从某些资本家角度出发,7300万度电,大概是1亿元人名币,这和商业成交额动则百亿比较,实在不值一提。
资本家不考虑,但国家需要考虑,因为能源日益匮乏是一个现实(除非有什么途径),如果不注重能源的管理,可能某天会面临巨大困境,甚至绝境。
所以,我们希望从多个层面解决这能源问题和浪费问题:
1.从国家和政策层面,出台“计算机和软件能耗法”,对不同场景的能耗具有指导、规范、惩戒作用。
2.还是从国家出发,引导企业研究更加先进的计算机工程技术,以便提升开发、维护效率,并提升运行效率,降低能耗
3.从企业角度出发,自觉国家法度,并致力于提升能效,因为这是利国利民的事情
4.从从业人员角度出发,则需要专心学习和研究提升计算机能效的方法
在信息化社会,硬件和软件的需求已经是非常普遍,所以哪怕是一点提升也是巨大的提升。
现在,我担心的是我们政府的领导的前瞻性、责任感、执行能力!
java+SpringCloud开发的性能和环保问题的更多相关文章
- Java高级开发_性能优化的细节
一.核心部分总结: 尽量在合适的场合使用单例[减负提高效率] 尽量避免随意使用静态变量[GC] 尽量重用对象,避免过多过常地创建Java对象[最大限度地重用对象] 尽量使用final修饰符[内联(in ...
- 开发语言性能对比,C++、Java、Python、LUA、TCC
一直想做开发语言性能对比,刚好有时间都做了给大家参考一下, 编译类:C++和Java表现还不错 脚本类:TCC脚本动态运行C语言,性能比其他脚本快好多... 想玩TCC的同学下载测试包,TCC目录下修 ...
- Java高级开发必会的50个性能优化细节
在JAVA程序中,性能问题的大部分原因并不在于JAVA语言,而是程序本身.养成良好的编码习惯非常重要,能够显著地提升程序性能. 1. 尽量在合适的场合使用单例 使用单例可以减轻加载的负担,缩短加载的时 ...
- Java高级开发必会的50个性能优化的细节(珍藏版)
在JAVA程序中,性能问题的大部分原因并不在于JAVA语言,而是程序本身.养成良好的编码习惯非常重要,能够显著地提升程序性能. ● 1. 尽量在合适的场合使用单例 使用单例可以减轻加载的负担,缩短 ...
- 5款强大的Java Web开发工具
1.WebBuilder这是一款开源的可视化Web应用开发和运行平台.基于浏览器的集成开发环境,采用可视化的设计模式,支持控件的拖拽操作,能轻松完成前后台应用开发:高效.稳定和可扩展的特点,适合复杂企 ...
- Java EE开发平台随手记1
过完春节以来,一直在负责搭建公司的新Java EE开发平台,所谓新平台,其实并不是什么新技术,不过是将目前业界较为流行的框架整合在一起,做一些简单的封装和扩展,让开发人员更加易用. 和之前负责具体的项 ...
- 敏捷开发中高质量 Java 代码开发实践
Java 项目开发过程中,由于开发人员的经验.代码风格各不相同,以及缺乏统一的标准和管理流程,往往导致整个项目的代码质量较差,难于维护,需要较大的测试投入 和周期等问题. 这些问题在一个项目组初建.需 ...
- 个人的java web开发书单
首发至个人博客http://www.zidafone.com/blog/36 以下是对一些读过的书和一些买后随便翻了翻的书的个人感觉.都是java web开发的程序员可能接触的书,其他的如设计/手机开 ...
- java 编程时候的性能调优
一.避免在循环条件中使用复杂表达式 在不做编译优化的情况下,在循环中,循环条件会被反复计算,如果不使用复杂表达式,而使循环条件值不变的话,程序将会运行的更快. 例子: import java.util ...
- 成为JAVA软件开发工程师要学哪些东西
2010-04-22 15:34 提问者采纳 Java EE(旧称j2ee) 第一阶段:Java基础,包括java语法,面向对象特征,常见API,集合框架: *第二阶段:java界面编程,包括AW ...
随机推荐
- containerd基本使用命令
一.containerd简介 官 方 文 档 : https://containerd.io 在 2016 年 12 月 14 日,Docker 公司宣布将containerd 从 Docker 中分 ...
- 《HelloGitHub》第 97 期
兴趣是最好的老师,HelloGitHub 让你对编程感兴趣! 简介 HelloGitHub 分享 GitHub 上有趣.入门级的开源项目. https://github.com/521xueweiha ...
- 模型评测-书生浦语大模型实战营学习笔记7&大语言模型12
大语言模型学习-12.模型评测 书生浦语大模型实战营学习笔记7 视频教程特别像广告,所以这篇博客参考了很多其他内容给大家参考,主要是下面几个页面: https://zhuanlan.zhihu.com ...
- SQL中常用的字符串REPLACE函数和LEN函数详解!
首发微信公众号:SQL数据库运维 原文链接:https://mp.weixin.qq.com/s?__biz=MzI1NTQyNzg3MQ==&mid=2247485212&idx=1 ...
- python教程6.5-excel处理模块
第三方开源模块安装 创建文件 打开已有文件 写数据 选择表 保存表 遍历表 按行遍历 按列遍历 遍历指定行列 遍历指定第几列数据 删除表 设置单元格样式 字体 对齐 设置行高列宽
- java调用webservice接口
1.直接AXIS调用远程的webservice 注意:不同版本的Axis相差很大,大家最好以apache网站上的例子为准,这里仅仅用于说明其基本用法. import org.apache.axis.c ...
- 【超详细】宝塔面板安装WordPress程序图文教程
宝塔面板是目前广受用户喜爱的服务器控制面板之一,自己也在用,确实很方便,很多用户的网站都是基于宝塔面板搭建,今天简单介绍下宝塔面板是如何安装WordPress的,方便新手用户快速部署.也方便自己以后查 ...
- 使用Redis实现短信登陆
使用Redis实现发送验证码:验证码登陆.注册:登陆校验拦截.登陆状态刷新等一系列问题. 验证码发送和验证登陆注册 思路流程 整体的思路以及流程如题: 代码实现 实体类 User实体类 @Data @ ...
- 低代码与 Echarts 融合:开启智能可视化的创新浪潮
前言 在当今数字化时代,数据的价值愈发凸显,企业和组织需要有效地利用数据来作出战略决策和优化业务流程.可视化是一种强大的工具,可以将复杂的数据以直观的方式展现出来,帮助用户更好地理解和分析数据.近年来 ...
- KPM算法求字符串的最小周期证明
先给出公式 ans = n - LPS[n-1] 其中ans为最小周期,n为给出的由假设的周期字符串中提取出的子串长度,LPS为前缀函数,n-1为字符串最后的位置下标 证明如下 证明ans = n - ...