JVM 的 -XX:+StressLCM、-XX:+StressGCM 选项

2023-11-22

和一些人玩的时候jcstress代码中,我注意到两个对我来说非常新的参数:StressLCM and StressGCM.

我要做的第一件事就是在源代码本身中搜索这些内容,虽然我找到了一些东西,但仍然不清楚它们是什么actually做。我真的希望在源代码中看到一些可以阐明一些观点的注释,但没有运气。

我还找到了错误描述添加了这些内容,但解释对我来说没有意义:

LCM/GCM 中的随机指令调度。

如果可能的话,有人可以用简单的英语解释他们是做什么的吗?


LCM / GCM 代表本地代码运动 / 全局代码运动。为了优化 CPU 利用率,编译器可以在不更改代码语义的情况下重新排序独立指令。编译器尝试找到最佳(从性能角度)的指令顺序。这称为指令调度,这就是 LCM / GCM 所做的事情。

With -XX:+StressLCM / -XX:+StressGCM选项指令调度的工作方式有点不同。它不再尝试寻找最佳调度,而是在允许的约束内选择随机指令顺序,仍然保持原始语义不变。这种不确定性行为有助于测试更多的指令交错组合,这对于发现微妙的并发问题至关重要。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JVM 的 -XX:+StressLCM、-XX:+StressGCM 选项 的相关文章

随机推荐

  • 比较 groovy 中的版本字符串

    嘿 我创建了一个 Groovy 脚本 它将提取某些文件夹的版本号 然后我想比较版本号并选择最高的 我让脚本在 dir 文件夹中运行 然后获取以下格式的版本 02 2 02 01 所以我可以得到这样的东西 02 2 02 01 02 2 02
  • 用于 Python 的 MS Analysis Services OLAP API [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我正在寻找一种方法来连接到 MS Analysis Services OLAP 多维数据集 运行 MDX 查询并将结果提取到 Python 中 换句话说 这正是 Excel 所做
  • 如何配置我的 iPhone 项目以使用单独的应用程序图标进行测试版

    我想要实现的是 我发送给 Beta 测试人员的构建中的应用程序图标与将提交审批的应用程序图标不同 这将使我和我的 Beta 测试人员能够轻松识别该应用程序是 Beta 版本 我不确定是否应该添加构建脚本来修改 info plist 并更改其
  • 如何将 Swift 结构作为参数传递给 Objective-C 方法

    我有一个接受类型参数的 Objective C 方法id我想向它传递一个 Swift 结构 ObjcClass m file implementation ObjcClass void addListener id listener Do
  • 在自定义活动设计器中将数据绑定到组合框

    我有一个自定义活动 有一个参数是一个字符串 但是 我不想让设计者输入任意字符串 而是希望向设计者提供一个带有选项列表的组合框 这些选项是动态的 并且从数据库加载到 List 集合中 我的问题是我不知道如何将设计器中的组合框绑定到此列表并将选
  • 通过网络读取和解析大型文本文件的最佳方法是什么?

    我遇到一个问题 需要我解析远程计算机上的多个日志文件 有一些并发症 1 该文件可能正在使用中 2 文件可能很大 100mb 3 每个条目可以是多行 为了解决使用中的问题 我需要先复制它 我目前正在将其直接从远程计算机复制到本地计算机 并在那
  • 如何在Python中的散点图上绘制一条线?

    我有两个数据向量 并将它们放入pyplot scatter 现在我想对这些数据绘制线性拟合 我该怎么做 我尝试过使用scikitlearn and np polyfit import numpy as np from numpy polyn
  • 对具有原始数字返回类型的方法的反思

    我目前正在开发一个小型框架来收集 OSGi 系统中的指标 它的核心是注释 Metric 它指示服务的给定方法可以在被请求时提供度量 例如数值 这些方法看起来像 Metric public int getQueueSize or Metric
  • maven没有找到类

    我继承了一个巨大的maven java项目 但无法编译它 mvn compile 它告诉我它找不到一个类 即使它就在本地仓库中 Failed to execute goal org codehaus enunciate maven enun
  • 如何在 Ruby 中实现抽象类

    我知道 Ruby 中没有抽象类的概念 但如果需要实施的话 我该如何实施呢 我尝试过这样的事情 class A def self new raise Doh You are trying to write Java in Ruby end e
  • 从wcf服务返回html

    我有一个网络服务 我需要从中返回一个包含 html 的字符串 此 html 是 Select 控件的标记 用于 jqGrid 搜索过滤器 例如
  • 计算函数返回值的最佳实践

    我经常用 C 语言构建函数来检查一些参数并返回错误代码 当我发现错误时停止值检查的最佳方法是什么 第一个例子 ErrorCode e myCheckFunction some params ErrorCode e error CHECK F
  • 以编程方式更改 R.String 的值

    您可以在 Android 程序中以编程方式更改 R string 的值吗 我需要提取一些 API 信息 例如电池状态 电池百分比 android 操作系统版本 并希望将其保存为 R string 值 我知道怎么读 String helloV
  • 如何通过简化 R 中的两个 SpatialPolygonsDataFrame 对象来创建新的多边形?

    假设我有两组形状文件 它们覆盖同一区域 并且经常但并不总是共享边界 例如美国各县和 PUMA 我想定义一个新的多边形规模 它使用 PUMA 和县作为原子构建块 即两者都不能分割 但我仍然希望有尽可能多的单位 这是一个玩具示例 library
  • 如何通过 ssh 执行 Bash 别名

    这就是我想做的 ssh andy
  • 为什么 -1>strlen(t) 在 C 中为真? [复制]

    这个问题在这里已经有答案了 在 VS2013 中处理这一小段代码 但由于某种原因它没有打印 似乎 1 gt strlen str 任何人都知道我做错了什么 char str abcd if 1
  • “gcc 链接”和“ld 链接”之间有什么关系?

    据说linux的加载器是 usr bin ld 但通常我们使用gcc g 来链接库和可执行文件 我们很少使用 ld 上次我手动使用 ld 是在学习linux汇编时 生成可执行文件的唯一方法是ld一个 o文件直接生成可执行文件 无需任何库 我
  • 如何使用 Javascript 中的“views.py”、Django 模板中的“”中的变量?

    当我使用 Django 模板渲染器渲染页面时 我可以传入一个包含各种值的字典变量 以便在页面中操作它们 myVar 有没有办法在 JavaScript 中访问相同的变量 也许使用DOM 我不知道Django如何使变量可访问 我希望能够使用查
  • Vagrant/VirtualBox/Apache2 奇怪的缓存行为

    我正在使用 Vagrant 来运行 Ubuntu 驱动的 VirtualBox 和 Apache2 除其他外 网络服务器还提供我的 vagrant 目录中的静态文件 这在大多数情况下都很有效 但是 当我更改共享文件夹上的图像并重新加载网站时
  • JVM 的 -XX:+StressLCM、-XX:+StressGCM 选项

    和一些人玩的时候jcstress代码中 我注意到两个对我来说非常新的参数 StressLCM and StressGCM 我要做的第一件事就是在源代码本身中搜索这些内容 虽然我找到了一些东西 但仍然不清楚它们是什么actually做 我真的