对于大部分商业应用开发程序员而言,使用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开发的性能和环保问题的更多相关文章

  1. Java高级开发_性能优化的细节

    一.核心部分总结: 尽量在合适的场合使用单例[减负提高效率] 尽量避免随意使用静态变量[GC] 尽量重用对象,避免过多过常地创建Java对象[最大限度地重用对象] 尽量使用final修饰符[内联(in ...

  2. 开发语言性能对比,C++、Java、Python、LUA、TCC

    一直想做开发语言性能对比,刚好有时间都做了给大家参考一下, 编译类:C++和Java表现还不错 脚本类:TCC脚本动态运行C语言,性能比其他脚本快好多... 想玩TCC的同学下载测试包,TCC目录下修 ...

  3. Java高级开发必会的50个性能优化细节

    在JAVA程序中,性能问题的大部分原因并不在于JAVA语言,而是程序本身.养成良好的编码习惯非常重要,能够显著地提升程序性能. 1. 尽量在合适的场合使用单例 使用单例可以减轻加载的负担,缩短加载的时 ...

  4. Java高级开发必会的50个性能优化的细节(珍藏版)

      在JAVA程序中,性能问题的大部分原因并不在于JAVA语言,而是程序本身.养成良好的编码习惯非常重要,能够显著地提升程序性能. ● 1. 尽量在合适的场合使用单例 使用单例可以减轻加载的负担,缩短 ...

  5. 5款强大的Java Web开发工具

    1.WebBuilder这是一款开源的可视化Web应用开发和运行平台.基于浏览器的集成开发环境,采用可视化的设计模式,支持控件的拖拽操作,能轻松完成前后台应用开发:高效.稳定和可扩展的特点,适合复杂企 ...

  6. Java EE开发平台随手记1

    过完春节以来,一直在负责搭建公司的新Java EE开发平台,所谓新平台,其实并不是什么新技术,不过是将目前业界较为流行的框架整合在一起,做一些简单的封装和扩展,让开发人员更加易用. 和之前负责具体的项 ...

  7. 敏捷开发中高质量 Java 代码开发实践

    Java 项目开发过程中,由于开发人员的经验.代码风格各不相同,以及缺乏统一的标准和管理流程,往往导致整个项目的代码质量较差,难于维护,需要较大的测试投入 和周期等问题. 这些问题在一个项目组初建.需 ...

  8. 个人的java web开发书单

    首发至个人博客http://www.zidafone.com/blog/36 以下是对一些读过的书和一些买后随便翻了翻的书的个人感觉.都是java web开发的程序员可能接触的书,其他的如设计/手机开 ...

  9. java 编程时候的性能调优

    一.避免在循环条件中使用复杂表达式 在不做编译优化的情况下,在循环中,循环条件会被反复计算,如果不使用复杂表达式,而使循环条件值不变的话,程序将会运行的更快. 例子: import java.util ...

  10. 成为JAVA软件开发工程师要学哪些东西

    2010-04-22 15:34 提问者采纳 Java EE(旧称j2ee)   第一阶段:Java基础,包括java语法,面向对象特征,常见API,集合框架: *第二阶段:java界面编程,包括AW ...

随机推荐

  1. containerd基本使用命令

    一.containerd简介 官 方 文 档 : https://containerd.io 在 2016 年 12 月 14 日,Docker 公司宣布将containerd 从 Docker 中分 ...

  2. 《HelloGitHub》第 97 期

    兴趣是最好的老师,HelloGitHub 让你对编程感兴趣! 简介 HelloGitHub 分享 GitHub 上有趣.入门级的开源项目. https://github.com/521xueweiha ...

  3. 模型评测-书生浦语大模型实战营学习笔记7&大语言模型12

    大语言模型学习-12.模型评测 书生浦语大模型实战营学习笔记7 视频教程特别像广告,所以这篇博客参考了很多其他内容给大家参考,主要是下面几个页面: https://zhuanlan.zhihu.com ...

  4. SQL中常用的字符串REPLACE函数和LEN函数详解!

    首发微信公众号:SQL数据库运维 原文链接:https://mp.weixin.qq.com/s?__biz=MzI1NTQyNzg3MQ==&mid=2247485212&idx=1 ...

  5. python教程6.5-excel处理模块

    第三方开源模块安装  创建文件 打开已有文件 写数据 选择表 保存表 遍历表 按行遍历 按列遍历 遍历指定行列 遍历指定第几列数据 删除表 设置单元格样式 字体 对齐 设置行高列宽

  6. java调用webservice接口

    1.直接AXIS调用远程的webservice 注意:不同版本的Axis相差很大,大家最好以apache网站上的例子为准,这里仅仅用于说明其基本用法. import org.apache.axis.c ...

  7. 【超详细】宝塔面板安装WordPress程序图文教程

    宝塔面板是目前广受用户喜爱的服务器控制面板之一,自己也在用,确实很方便,很多用户的网站都是基于宝塔面板搭建,今天简单介绍下宝塔面板是如何安装WordPress的,方便新手用户快速部署.也方便自己以后查 ...

  8. 使用Redis实现短信登陆

    使用Redis实现发送验证码:验证码登陆.注册:登陆校验拦截.登陆状态刷新等一系列问题. 验证码发送和验证登陆注册 思路流程 整体的思路以及流程如题: 代码实现 实体类 User实体类 @Data @ ...

  9. 低代码与 Echarts 融合:开启智能可视化的创新浪潮

    前言 在当今数字化时代,数据的价值愈发凸显,企业和组织需要有效地利用数据来作出战略决策和优化业务流程.可视化是一种强大的工具,可以将复杂的数据以直观的方式展现出来,帮助用户更好地理解和分析数据.近年来 ...

  10. KPM算法求字符串的最小周期证明

    先给出公式 ans = n - LPS[n-1] 其中ans为最小周期,n为给出的由假设的周期字符串中提取出的子串长度,LPS为前缀函数,n-1为字符串最后的位置下标 证明如下 证明ans = n - ...