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

目标网站上做关键字布局只做百度移动端网站可以吗

目标网站上做关键字布局,只做百度移动端网站可以吗,微信app下载安装官方版2022网址,公司网站问题 synchronized(同步-重量级锁)会解除所有编译器优化吗? 基础知识 使用当前的 Java 内存模型,未观察到的锁不一定会产生任何内存效应。除其他情况外,这意味着对非共享对象进行同步是徒劳的,因此运行时不必在那里做任何事情。这给编译优…

问题

synchronized(同步-重量级锁)会解除所有编译器优化吗?

基础知识

使用当前的 Java 内存模型,未观察到的锁不一定会产生任何内存效应。除其他情况外,这意味着对非共享对象进行同步是徒劳的,因此运行时不必在那里做任何事情。这给编译优化提供了优化的机会。

因此,如果逃逸分析发现对象是非逃逸的,编译器就可以自由地消除同步。

实验

测试用例

在新对象上使用和不使用同步来增加值。

源码

import org.openjdk.jmh.annotations.*;@Warmup(iterations = 5, time = 1, timeUnit = TimeUnit.SECONDS)
@Measurement(iterations = 5, time = 1, timeUnit = TimeUnit.SECONDS)
@Fork(3)
@BenchmarkMode(Mode.AverageTime)
@OutputTimeUnit(TimeUnit.NANOSECONDS)
@State(Scope.Benchmark)
public class LockElision {int x;@Benchmarkpublic void baseline() {x++;}@Benchmarkpublic void locked() {synchronized (new Object()) {x++;}}
}

通过-prof perfnorm进行执行上述测试用例,执行结果如下:

Benchmark                                   Mode  Cnt   Score    Error  UnitsLockElision.baseline                        avgt   15   0.268 ±  0.001  ns/op
LockElision.baseline:CPI                    avgt    3   0.200 ±  0.009   #/op
LockElision.baseline:L1-dcache-loads        avgt    3   2.035 ±  0.101   #/op
LockElision.baseline:L1-dcache-stores       avgt    310⁻³            #/op
LockElision.baseline:branches               avgt    3   1.016 ±  0.046   #/op
LockElision.baseline:cycles                 avgt    3   1.017 ±  0.024   #/op
LockElision.baseline:instructions           avgt    3   5.076 ±  0.346   #/opLockElision.locked                          avgt   15   0.268 ±  0.001  ns/op
LockElision.locked:CPI                      avgt    3   0.200 ±  0.005   #/op
LockElision.locked:L1-dcache-loads          avgt    3   2.024 ±  0.237   #/op
LockElision.locked:L1-dcache-stores         avgt    310⁻³            #/op
LockElision.locked:branches                 avgt    3   1.014 ±  0.047   #/op
LockElision.locked:cycles                   avgt    3   1.015 ±  0.012   #/op
LockElision.locked:instructions             avgt    3   5.062 ±  0.154   #/op

测试结果完全相同:时间相同,加载、存储、周期、指令的数量相同。很有可能,这意味着生成的代码是相同的。查看汇编代码,如下所示:

14.50%   16.97%  ↗  incl   0xc(%r8)              ; increment field
76.82%   76.05%  │  movzbl 0x94(%r9),%r10d       ; JMH infra: do another @Benchmark0.83%    0.10%  │  add    $0x1,%rbp0.47%    0.78%  │  test   %eax,0x15ec6bba(%rip)0.47%    0.36%  │  test   %r10d,%r10d╰  je     BACK

锁被完全省略了,分配和同步都消失了。如果我们在运行时添加JVM参数:-XX:-EliminateLocks ,或者使用-XX:-DoEscapeAnalysis禁用 EA(这会破坏所有依赖于 EA 的优化,包括锁省略),那么locked计数器就会膨胀,并显示分配和简单同步的成本,执行结果如下:

Benchmark                                   Mode  Cnt   Score    Error  UnitsLockElision.baseline                        avgt   15   0.268 ±  0.001  ns/op
LockElision.baseline:CPI                    avgt    3   0.200 ±  0.001   #/op
LockElision.baseline:L1-dcache-loads        avgt    3   2.029 ±  0.082   #/op
LockElision.baseline:L1-dcache-stores       avgt    3   0.001 ±  0.001   #/op
LockElision.baseline:branches               avgt    3   1.016 ±  0.028   #/op
LockElision.baseline:cycles                 avgt    3   1.015 ±  0.014   #/op
LockElision.baseline:instructions           avgt    3   5.078 ±  0.097   #/opLockElision.locked                          avgt   15  11.590 ±  0.009  ns/op
LockElision.locked:CPI                      avgt    3   0.998 ±  0.208   #/op
LockElision.locked:L1-dcache-loads          avgt    3  11.872 ±  0.686   #/op
LockElision.locked:L1-dcache-stores         avgt    3   5.024 ±  1.019   #/op
LockElision.locked:branches                 avgt    3   9.027 ±  1.840   #/op
LockElision.locked:cycles                   avgt    3  44.236 ±  3.364   #/op
LockElision.locked:instructions             avgt    3  44.307 ±  9.954   #/op

总结

锁省略是逃逸分析启用的另一项优化,它删除了一些多余的同步。当内部同步实现没有逃逸到野外时,这尤其有益:然后,我们可以完全放弃同步!

http://www.dtcms.com/wzjs/794992.html

相关文章:

  • 网页制作素材库哪个网站如何购买建设网站系统
  • 胡芦娃app软件下载网站wordpress首页显示推荐标志
  • 福州建网站公司网络规划设计师待遇怎么样
  • 网站怎么才可以不备案郑州信息网平台
  • 中国建设银银行招聘网站wordpress常规地址改错了怎么办
  • 做网站换域名网站留言板制作
  • 綦江网站建设如何建立网络销售平台
  • 网站开启伪静态怎么查看wordpress主题
  • 京东商城网站怎么做建设网站进行商品营销的重要性
  • 万网注册的网站长时间不能访问是不是被封了山东岩海建设资源有限公司网站
  • ps做图软件怎么下载网站seo在线优化
  • 电子商务网站建设公长沙人力资源招聘网
  • 企业网站开发流程简述五里坨网站建设
  • 个体工商户能网站备案吗学校资源门户网站建设方案
  • 做班级的活动的网站wordpress运行库
  • 最牛的网站建设哪个网站比较好
  • 做网站程序先从哪一步开始深圳网站制作公司兴田德润信任高
  • 深圳外贸网站定制沛县网络营销是什么
  • 山东省建设局注册中心网站可以做网站首页的图片素材
  • 石家庄 网站开发公司注册名字大全免费
  • 家电维修做网站生意怎么样WordPress二维码动态
  • wang域名注册网站网站建设公司是什么
  • 企业官方网站怎么写网站设计相似侵权吗
  • 晋城市住房保障和城乡建设局网站肥城网站建设流程
  • 陶瓷网站建设专业模板建站软件
  • 山东网站seo设计江苏建设招标信息网站
  • 网站怎么使用做旅行的网站
  • 如何增加网站反链asp网站转手机站
  • 租二级目录做网站苏州网站建设系统价格合理
  • 南宁百度网站建设公司哪家好WordPress允许评论编辑