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

珠海网站建设哪家专业网站建设公司利润

珠海网站建设哪家专业,网站建设公司利润,视频分享网站建设,wordpress破解密码这篇文章着眼于转义分析#xff0c;特别是jvm在运行的程序中执行转义分析需要多长时间。 我做了一些观察#xff0c;但目前还没有全部解释。 作为介绍#xff0c;让我们绕道看看jvm -Xcomp中一个鲜为人知且使用更少的标志#xff08;这将是一件好事#xff09;。 该标志… 这篇文章着眼于转义分析特别是jvm在运行的程序中执行转义分析需要多长时间。 我做了一些观察但目前还没有全部解释。 作为介绍让我们绕道看看jvm -Xcomp中一个鲜为人知且使用更少的标志这将是一件好事。 该标志的行为在jvm 文档中定义为 -Xcomp在第一次调用时强制编译方法。 默认情况下客户端VM -client 执行1,000个解释方法调用服务器VM -server 执行10,000个解释方法调用以收集信息以进行有效的编译。 指定-Xcomp选项会禁用解释的方法调用从而以提高效率为代价来提高编译性能。 乍一看这似乎是一个极好的选择。 在10,000个周期内预热jvm的快捷方式–我们可以直接编译代码。 我们是否应该始终默认启用此选项 但是文档确实警告说这将“以牺牲效率为代价”。 jvm在10,000个预热周期中了解代码行为以便在编译时以最有效的方式进行编译。 立即编译代码意味着可以确实可以编译代码但是编译后的代码可能不是最有效的。 您可以在此博文中阅读有关它的更多信息-但这并不是本文的主题。 如果使用-Xcomp则不会发生的其他事情是转义分析。 实际上这非常令人惊讶因为jvm不需要通过运行程序来了解是否可以进行转义分析。 这应该通过对代码的静态分析来证明。 看看这个代码我被思想的启发本博客 import java.io.IOException; import java.util.Optional;/*** Created by daniel on 17/12/2015.*/ public class Test {private static String NAME;public static void main(String[] args)throws IOException {new Test().test();}public void test() throws IOException {Name name new Name(Steven);int iterations 1_000_000;for(;;){countOptional(name, iterations);System.out.println(Press any key to continue);System.in.read();}}private static void countOptional(Name name, int iterations) {for (int i 0; i iterations; i) {NAME name.getOptionalName().get();}System.out.println(iterations optional iterations NAME);}class Name {private final String name;public Name(String name) {this.name name;}public OptionalString getOptionalName() {return Optional.ofNullable(name);}} } 我们需要确保程序在没有gc的情况下运行我建议使用这些标志 -verbosegc -Xmx4g -Xms4g 当程序等待输入时请执行堆转储以查看已创建了多少个Optional对象。 然后按任意键以恢复程序。 要执行堆转储请先运行jps以确定程序的pid然后运行 jmap -histo pid | head 一次不使用-Xcomp标志一次使用-Xcomp标志。 没有-Xcomp标志 第一次迭代后 在第二次迭代之后 所有后续迭代都是相同的不再创建其他对象 在234k次迭代之后显然有转义分析开始了-不知道为什么要花这么长时间通常例如使用编译代码10k次迭代就足够了吗 同样在第二次迭代中它在逃逸分析开始之前又创建了约40万个对象这也有些神秘。 使用-Xcomp标志 第一次迭代后 在第二次迭代之后 每次迭代后 Optional对象的数量增加1m。 摘要 -Xcomp是几乎绝对不应在生产中使用的开关。 我可以想象在某些情况下您可能想禁用解释器但是这些情况非常特殊。 逃脱分析似乎至少需要进行20万次迭代才能有效。 因此您需要允许超过10k的迭代时间以进行完全预热。 还有另一个阶段在逃避对象之后似乎需要再次执行此操作。 这需要进一步的理解。 如果通过在两次调用Optional之间进行一些工作来减慢程序速度则对象数量会减少。 例如我发现对Math.sin的调用将Optional对象减少了约50。 翻译自: https://www.javacodegeeks.com/2015/12/long-take-jvm-effect-escape-analysis-maybe-longer-think.html
http://www.sadfv.cn/news/141841/

相关文章:

  • 公司网站建设劳伦龙岗网站建设_公司推广
  • 做菠菜网站有没有被骗的dede网站改成自适应
  • 360建筑网是什么网站网站备案公告
  • 揭阳住房和城乡建设厅网站wordpress站点维护
  • 电子商务网站建设的主页中英双语网站模板
  • 兰州网站推徐州市专业做网站的公司
  • 做投资要关注哪些网站中天建设集团有限公司西南分公司
  • 网站建设的组织机构汉中 网站建设
  • 网站开发是怎么开发的网站建设模板是什么
  • 怎么查询网站ftp地址移动端什么意思
  • 大淘客构建自己的网站大气聚财的公司名字
  • 网站先做前台还是后台昆明贤邦网站建设
  • 汝州网站制作企业网站建设销售前景
  • 有专门做礼品的网站吗苏州市建设交易中心网站
  • 网站经营许可备案号做多国语言网站
  • 广西网站建设企业黄骅港金沙滩门票价格
  • 软件园二期做网站的公司超值的镇江网站建设
  • 微信公众号的跳转网站怎么做承德网站制作
  • 各大网站投放广告怎么做界面设计器
  • 五金网站方案网站建设 别墅
  • 电气建设网站青岛网络有限公司
  • 找设计网站公司wordpress能恢复修改前吗
  • 限时抢购网站源码专业网站设计制合肥作
  • 汕头市澄海区建设局网站代理网络工具下载
  • 建站之星官网建设app界面素材
  • Python 查询网站开发2023年国内十大新闻
  • 两学一做网站登录网站制作详细过程
  • 百度站长工具收费吗电商设计工作内容
  • 免费asp网站源码下载免费设计签名软件
  • 房管局网站建设湖州吴兴建设局网站