当前位置: 首页 > news >正文

网站页面上的下载功能怎么做ps扩展插件网站

网站页面上的下载功能怎么做,ps扩展插件网站,seo是什么简称,做网站关键词软件经过多年的演进#xff0c;Java语言的功能和性能都在不断地发展和提高#xff0c;但是冷启动开销较大的问题长期存在#xff0c;难以从根本上解决。本文先讨论冷启动问题的根本原因#xff0c;然后介绍一种新近提出的彻底解决Java冷启动问题的技术方案——Java静态编译技术… 经过多年的演进Java语言的功能和性能都在不断地发展和提高但是冷启动开销较大的问题长期存在难以从根本上解决。本文先讨论冷启动问题的根本原因然后介绍一种新近提出的彻底解决Java冷启动问题的技术方案——Java静态编译技术。什么是冷启动所谓冷启动问题是指Java应用并不是即起即用的而需要经过虚拟机初始化后才能达到可用状态再经过程序预热才能达到最佳性能。图1给出了Java程序的运行时性能随运行时间实际上是代码重复执行次数的变化示意图。图 1 Java程序运行时性能演化示意图横坐标是程序运行时间时间越长代表程序中代码被重复执行的次数越多纵坐标是程序的响应时间响应越快代表运行时性能越好。可以看出程序响应能力分成了四个部分第一个阶段为无穷大因为程序启动时需要首先初始化Java虚拟机然后初始化应用程序在这个阶段应用是不会有响应的。随后经过解释执行、C1实时编译和C2实时编译应用的响应时间才从高、中到了低最终进入稳定执行阶段。前三个阶段就是冷启动也可以看作程序预热最后一个阶段为稳定执行此时的程序运行时性能最好。在传统的单机或者服务器部署的场景中冷启动问题并不明显一来是应用执行时间足够长冷启动问题就被淡化了二来人们还可以提前将服务预热准备好以最好的状态迎接用户的服务请求。但是在云原生Serverless应用的场景中首次请求必须经过无响应阶段才会落在响应时间高的为位置后续请求也会落在高的阶段只有经过足够多的请求后才会逐渐落入稳定阶段。冷启动问题使得Java在Serverless场景下无法与Node.js、Go等具有快速启动优势的的语言的竞争中落于下风。冷启动问题的根本原因当我们执行一个Java应用程序时看似是从主函数Java可执行应用程序的入口是主函数开始的但实际需要在JVM初始化后才会调用Java主函数开始执行应用程序。我们将图 1展示的抽象模型进一步细化可以得到如图 2所示的Java程序的执行生命周期模型Java程序可以分为VM初始化VM init、应用初始化App init、应用预热App active warmup、应用稳定App active steady和关闭shutdown这5个阶段。图 2  Java应用程序的运行生命周期示意图图2的横坐标代表应用执行的时间顺序纵坐标代表CPU利用率各个颜色的区域代表该行为的CPU使用率红色区域的VM表示JVM、青色的CL代表类加载Class Loading白色的是实时编译Just In TimeJIT黄色的代表垃圾回收GC浅绿色代表解释执行应用程序绿色代表执行经过JIT编译的应用代码。从图2中可以看到各个阶段中花费时间最多的行为是什么但这里的使用情况并不是按实际比例绘制的而是只反映整体趋势的示意因为具体的数据会随应用不同而变化。从图 2可以看到Java程序的运行生命周期是首先启动JVM执行各种VM的初始化动作然后调用Java程序的主函数进入应用初始化此时才会开始通过解释执行方式运行Java代码随着Java代码运行而同时开始的还有GCJIT会在出现热点函数时才开始当程序初始化完成后开始执行应用程序的业务代码此时才算进入了程序执行的预热阶段这个阶段会有大量的类加载和JIT编译行为当程序被充分预热后就进入了运行时性能最好的稳定阶段此时的理想状态是只有应用本身和GC在运行其他的行为都已渐渐退出最后是关闭应用各个行为次第结束。Java 语言最初被认为是一种解释型语言因为 Java 源代码并非被先编译为与机器平台相关的汇编代码再执行而是先编译为与平台无关的字节码bytecode然后由 JVM 解释执行。解释执行是由 JVM 将字节码逐条翻译为汇编代码然后执行的过程。经过解释的代码缺少编译优化因此运行时性能较低。不过解释执行非常灵活可以支持诸如动态类加载这样的动态特性。Java 可以在运行时解释执行一段在编译时尚不存在的代码这种特性对于编译执行类型的语言来说是难以想象的。为了解决运行时性能低的问题Java 引入了实时编译技术JITJust In time在运行时将热点函数编译为汇编代码当程序再次运行到经过实时编译的函数时就可以执行经过编译和优化的汇编代码而不再需要解释执行了。由于编译是在运行时进行的因此 JIT 编译器可以获得代码实际运行的路径、热点和变量值等信息基于此可以做出非常激进的编译优化从而获得执行效率更高的代码。OpenJDK使用的JIT编译器分为C1和C2前者编译优化较少但是编译所消耗资源也较少后者编译得到的代码性能最好但是编译消耗的资源也较多。现在的Java程序基本都是采用解释执行加JIT执行的混合模式当函数执行次数较少时解释执行而当函数的执行次数超过一定阈值后再JIT执行从而实现了热点函数JIT 执行、非热点函数解释执行的效果。不过既然JIT带来了非常显著的性能优势为什么不全部采用JIT方式呢因为编译优化本身是需要占用系统资源的资源密集型运算它会影响应用程序的运行时性能在实践中甚至出现过JIT线程占用过多资源导致应用程序不能执行的状况。此外如果代码执行的次数较少编译优化代码造成的性能损失可能会大于编译执行带来的性能提升。所以冷启动问题的原因有两点一是Java的虚拟机模型机制二是从解释执行到JIT执行的分层次执行模型。这两点在当前的Java模型下是无法更改的它们都是Java运行时的基石。如何解决冷启动问题但这个问题并不是无解我们可以换个角度思路思考。Java虚拟机的主要作用是提供跨平台能力以支持与平台无关的Java字节码可以在不同的操作系统中运行。解释执行、JIT执行等问题都是由此衍生而来的。如果我们并不需要跨平台能力是不是可以将Java程序直接编译为目标平台的机器码然后提供必要的运行时支持让它以操作系统原生程序的形式运行呢如此一来就彻底解决了冷启动问题。答案是肯定的这就是Java的静态编译技术。Java静态编译是指将Java程序的字节码在单独的离线阶段编译为汇编代码其输入为Java的字节码输出为操作系统本地原生程序。“静态”是相对传统Java程序的动态性而言的因为传统Java程序是在运行时动态地解释执行和JIT编译而静态编译需要在执行前就静态地完成程序的编译。目前由Oracle开发的高性能跨语言运行时框架开源项目GraalVM中就提供了Java静态编译所需的编译工具链、编译框架、编译器和运行时等全套支持并且已经达到了生产可用的程度。GraalVM的静态编译的基本原则是封闭性假设closed world assumption要求编译器在编译时必须掌握运行时所需的全部信息换句话说就是运行时不能出现任何编译时未知的内容。这是因为应用程序的可达范围在静态编译时被限定了因为没有了类加载器、解释器等组件不能在运行时解析和执行任何动态引入的类。与传统Java运行模型相比GraalVM的静态编译运行模型有两大特点一是静态编译后的可执行程序已经是本地程序而且自包含了轻量级运行时支持因此不再额外需要Java虚拟机。没有了JVM自然也就消除了图 1中的响应时间无穷大阶段使得应用程序达到即起即用的状态。另外因为JVM的运行也需要消耗一部分内存去掉JVM后应用程序的内存占用也大幅降低。二是静态编译后的程序也经过了众多的编译优化运行时不再需要经过解释执行和JIT编译既避免了解释执行的低效也避免了JIT编译的CPU开销还解决了传统Java执行模型中无法充分预热始终存在解释执行的问题因此可以保证应用程序始终以稳定的性能执行不会出现性能波动。这两个基本特点解决了Java程序冷启动问题—JVM初始化的开销和从解释执行到JIT编译执行的开销因此静态编译后的Java程序可以获得极速启动的效果。图 3 给出了OpenJDK和静态编译后的Java程序的性能对比示意其中蓝色线条为OpenJDK的运行时性能变化情况红色线条为社区版GraalVM静态编译后的程序运行时性能变化情况可以看到经过社区版GraalVM的静态编译后的Java应用的性能稳定地处于OpenJDK的C1编译器的水平。而商业版的GraalVM静态编译甚至可以使程序达到C2编译器的编译后的性能水平。图 3 OpenJDK与GraalVM静态编译的Java程序性能对比示意图由此可见Java静态编译技术能够彻底解决Java冷启动问题使得Java语言在云原生应用的浪潮中继续保持强大的竞争力可谓是Java语言的“大杀器”了。在评论区留言你对本文的观点CSDN云计算将选出三名优质留言送出《GraalVM与Java静态编译原理与应用》一本截至1月17日14:00点往期推荐低代码发展专访系列之八低代码平台能够打破企业「应用孤岛」现象吗Medusa又一个开源的替代品用了HTTPS没想到还是被监控了快速搭建实验环境使用 Terraform 部署 Proxmox 虚拟机点分享点收藏点点赞点在看
http://www.pierceye.com/news/708377/

相关文章:

  • 商业网站建设案例视频上海猎头公司哪家好
  • 如何开个人网站seo诊断站长
  • wordpress rss 订阅乐陵seo推广
  • 公司做一个网站企业建设3D网站
  • 自己做的网站别人打不开网络系统建设与运维职业技能等级证书
  • 签名能留链接的网站数据库网站建设公司
  • 网站权重不够高 导致创建网站销售产品
  • 中国建设报网站做网站如何文字链接文字
  • 网站建设网站多少钱网站上做值机的app
  • 百度手机网站提交做网站优化的教程
  • wordpress建站教程贴吧网站建设的论文的参考文献
  • 公司网站设计建议php7 wordpress
  • 商城网站建设策划书扬中会建网站
  • 铜陵市网站建设如何建立小程序商城
  • 大型网站运营步骤做网站f12的用处
  • 静态网站什么意思微信开发者工具打不开
  • 建站到网站收录到优化通化北京网站建设
  • 网站开发作用wordpress mysuc cms
  • 网站开发人员的职责是什么石家庄外贸建站公司
  • 内外外贸购物网站建设网站顶部下拉广告
  • 深圳企业网站建设服务平台销售推广语
  • 做网站要什么资料百度网盘登录
  • 聚牛网站建设公司北京seo优化推广
  • 成都网站公司网站建设东莞大岭山电子厂
  • python建立简易网站网站界面设计的分类有哪几种
  • 网络规划师考哪些内容优化设计卷子答案
  • 邢台网站关键词优化wordpress弹窗下载
  • 晋城市企业网站腾讯qq官网登录入口
  • 怎么给网站在百度地图上做爬虫一家专门做灯的网站
  • 河南焦作有做网站开发的公司吗xampp安装wordpress