跨 Java 堆的年轻部分和长期部分的大型数组分配

2023-12-11

是否可以在 Java 堆的年轻区域和永久区域之间分配大型数组?

鉴于这些地区有自己的次区域,我认为我稍微简化了问题。我只是想了解一次分配是否可以跨越多个区域(年轻和终身)。如果是,那么垃圾收集是如何完成的,因为不同区域使用的策略是不同的(我认为至少在 ParallelGC 的情况下,不同的收集器用于不同的区域)。

为了让问题更清楚,这里举一个例子。假设 -Xms 和 -Xmx 设置为 900M,NewRatio(年轻区域与长期区域的比率)为 2。这将导致年轻区域为 300M,长期区域为 600M。现在,如果我尝试分配一个“新字节[750]”,那么分配会通过,因为没有一个区域可能有足够的连续空间。

我问这个问题的原因是我在分配一个大数组时遇到了问题(OutofMemoryError)(这实际上是我代码中的大部分分配),我通过更改 -XX:NewRatio 解决了这个问题。我的假设是,大型阵列肯定会进入永久区域,并且我的永久区域至少应具有阵列所需的空间。


Java 数组总是分配在连续的内存中。他们不会分开。

新对象总是在年轻代中分配,如果它们在足够的 GC 事件中幸存下来,则将其移至终身代。因此,请确保您的年轻分配足够大。

如果没有 750 字节的连续区域,您将无法让 new byte[750] 工作。

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

跨 Java 堆的年轻部分和长期部分的大型数组分配 的相关文章

  • 安卓。 onEditorAction 从未被调用

    我正在尝试捕捉从屏幕上移除键盘的事件 并且我正在使用OnEditorActionListener班级 然而 其onEditorAction方法永远不会被调用 这是我的 XML 格式的 EditText
  • 如何使用 IO Codenameone 发布图片/图像

    因为 codenameone 不能使用外部库 HttpConnection 所以我必须使用 Codenameone 提供的内部库 API 只是我已经设法使用 ConnectionRequest 将数据发布到格式化文本 字符串 我想知道是否有
  • Java Arraylist of object 按日期从数组列表中删除元素

    这是我的数组列表 ArrayList
  • 数组查找时间复杂度和。它是如何存储的

    众所周知 通过索引访问数组的时间复杂度是O 1 Java 的文档ArrayList 它由数组支持 对其也有同样的说法get手术 size isEmpty get set iterator 和 listIterator 操作以恒定时间运行 查
  • Windows 上的虚假唤醒。是否可以?

    我最近学习了 虚假唤醒 有人说这个问题只可能发生在某些类型的 Linux PC 上 我用的是窗户 我为虚假唤醒编写了测试 我得到的结果是这是可能的 但我想向您展示这个测试 也许我在某个地方犯了错误 我的初始变体 import java ut
  • 面试问题 - 在排序数组 X 中搜索索引 i,使得 X[i] = i

    昨天面试时 我被问到了以下问题 考虑一个 Java 或 C 数组X它已排序并且其中没有两个元素是相同的 如何最好地找到索引i这样该索引处的元素也是i 那是X i i 作为澄清 她还给了我一个例子 Array X 3 1 0 3 5 7 in
  • 将 Spring Boot 应用程序部署到 Heroku 失败并显示“无效标志:--release -> [帮助 1]”

    当我尝试将代码部署到 Heroku 时 通过git push heroku master 我收到 Maven 错误 remote ERROR Failed to execute goal org apache maven plugins m
  • C# 中的 Culture 相当于 Java 中的 Locale 吗?

    C 使用文化的概念 这在操作上与 Java 中的 Locale 类似吗 或者底层概念是否存在显着差异 从文化而不是语言环境的角度进行工作是一种寻找正确抽象层次的尝试 从以类似方式做事的人群的角度来考虑事物 而不是谈论地理区域和语言 并有点疯
  • 如何在Spring Security SAML示例中配置IDP元数据和SP元数据?

    我想处理 Spring Security SAML 为此 我开始探索Spring安全SAML http docs spring io spring security saml docs 1 0 x reference html chapte
  • 如何在 Android 中将 EditText 绘制到画布上?

    我想画画 EditText username new EditText context 到我画布上的特定位置 protected void onDraw Canvas canvas 是否可以在基础上画出x y在我的 Java 文件中协调而不
  • Java HttpURLConnection:内容长度计算

    我目前正在为 bitbucket issues RESTful API 开发一个库 我取得了很大的进步 现在我要解决这个部分更新问题 http confluence atlassian com display BBDEV Issues Is
  • java.sql.SQLException: - ORA-01000: 超出最大打开游标数

    我收到 ORA 01000 SQL 异常 所以我有一些与之相关的疑问 最大打开游标是否与 JDBC 连接数完全相关 或者它们也与我们为单个连接创建的语句和结果集对象相关吗 我们正在使用连接池 有没有办法配置数据库中语句 结果集对象的数量 如
  • 在 Android 中使用 lambdaj

    有人尝试过在android开发中使用lambdaj库吗 当我创建一个简单的小型java应用程序时 它对我来说工作得很好 但我无法在android应用程序中使用它 UPDATE 我正在添加 lambdaj lambdaj 2 3 2 with
  • 按位非运算符

    为什么要按位运算 0 打印 1 在二进制中 不是0应该是1 为什么 你实际上很接近 在二进制中 不是0应该是1 是的 当我们谈论一位时 这是绝对正确的 然而 一个int其值为0的实际上是32位全零 将所有 32 个 0 反转为 32 个 1
  • 用java解密AES加密文件

    我有一个使用 AES 使用 java 应用程序加密的文件 我还有一个加密的密钥文件 但我不明白如何使用密钥来解密文件 大多数教程和示例都会在一个地方创建临时随机密钥 加密文件和解密 所以 问题是如何指定解密时必须使用的密钥 EDIT 我发现
  • 如何对JConsole的密码文件的密码进行加密

    我正在使用 JConsole 访问我的应用程序 MBean 并使用 password properties 文件 但根据 Sun 的规范 该文件仅包含明文格式的密码 com sun management jmxremote password
  • 如何在最短的时间内克隆java中的输入流

    有人可以告诉我如何克隆输入流 并花费尽可能少的创建时间吗 我需要多次克隆输入流以使用多种方法来处理 IS 我尝试了三种方法 但由于这样或那样的原因 事情不起作用 方法 1 感谢 stackoverflow 社区 我发现以下链接很有帮助 并将
  • GAE - Eclipse 中的开发服务器未更新?

    我在 Eclipse 上使用 Google AppEngine 开发服务器 我的本地网页似乎没有更新 直到我在开发服务器上进行了多次重新启动 使用 Eclipse 中的 运行 或 调试 按钮 我究竟做错了什么 基本流程是 更改 java 文
  • 使用 Java 进行 AES 加密并使用 Javascript 进行解密

    我正在制作一个需要基于 Java 的 AES 加密和基于 JavaScript 的解密的应用程序 我使用以下代码作为基本形式进行加密 public class AESencrp private static final String ALG
  • 用于将字符串与通配符模式进行匹配的递归函数

    所以我一整天都在试图解决这个作业 只是无法完成 以下函数接受 2 个字符串 第二个 不是第一个 可能包含 的 星号 An 是字符串的替换 空 1个字符或更多 它可以出现 仅在s2中 一次 两次 更多或根本不出现 它不能与另一个相邻 ab c

随机推荐

  • 证书如何避免中间人攻击?

    我还有一个关于网络安全的问题 如果我理解正确的话 证书是为了识别你的真实身份 所以中间人的攻击是不可能的 但当我看到这张图片时 http upload wikimedia org wikipedia commons thumb 2 2b D
  • 获取等于 php 十六进制字符串的 C# 字节数组

    所以我现在不允许修改这段php代码 主要是因为它很旧并且工作正常 Warning 总体来说代码非常糟糕 IV 没有被随机化 也没有与输出一起存储 我问这个不是因为我想 我问是因为我需要 当我开始工作时 我还计划进行重构 并使用真正可靠的加密
  • 具有 AUTO_INCRMENT 主 ID 的 MySQL 表在回滚后不会释放该数字

    我有一张桌子 上面有账单 每张账单都有一个 ID 该 ID 在我插入新记录后来自数据库 该字段是一个设置了 AUTO INCRMENT 的 INTEGER 如果我插入一条新记录作为事务的一部分并且必须回滚该事务 则 ID 将被占用并消失 因
  • 中带有 List 的动态列

    我正在尝试生成一个dataTable动态地使用列 所以我有一个List
  • Xamarin Forms 滑动按钮

    我希望在我的应用程序中添加一个滑动功能 该功能与 旧 iPhone 上的解锁机制几乎相同 参见图片 我正在努力解决如何在跨平台解决方案上实现这一点 我的直接想法是使用滑块和自定义渲染器 但不确定如果用户在完成幻灯片之前放手 如何创建捕捉以启
  • 在 AVPlayer 框架中播放 3gp 视频的已知问题?

    AVPlayer 无法在设备上播放 3gp 文件是否存在任何已知问题 mp4 文件可以正常播放 但无法从设备上的 URL 播放 3gp 文件 Thanks 如果重要的话 我使用的是 iOS 9 Swift 3 AVPlayer 或 AVPl
  • 使用手动 where 语句具有多个更新条件的 Codeigniter 模型

    我在模型中有返回数据的代码 this gt db gt select title content date where name Joe AND status boss this gt db gt where where query thi
  • SQL Server - 如何选择每个用户的最新记录?

    我正在尝试执行一个 SQL 命令 该命令应该绘制进入数据库的最后一行 基本上 当用户提交最后一个帖子 就像在这个论坛中 时 它会将用户重定向到一个页面 其中包含他的帖子标题 帖子段落以及用户名和帖子提交时间等数据 我开始研究声明 SELEC
  • PHP使用相同的变量后通过引用传递错误

    看一下这段代码 帮助我理解结果 x array hello beautiful world y array bye bye world harsh foreach x as n gt v v DONT CHANGE foreach y as
  • MS SQL Server:以小时和分钟的精度计算年龄

    我需要一个 SQL 函数来计算年龄 它必须准确并涵盖所有极端情况 由于是婴儿病房 所以30分钟是很常见的情况 我查看了其他答案 但找不到处理所有情况的答案 例如 宝宝出生于2014 04 29 12 59 00 000 现在是 2014 0
  • shell 脚本查找每个文件的文件名和行数,现在将此记录插入到 Oracle 表中

    我必须找到文件夹中可用的文件名以及每个文件行数 然后 我将获得两列数据 现在我必须将此记录插入到具有两列 col1 col2 的oracle表中 我可以写一个 shell 脚本来完成这两个任务吗 我发现自己正在写第一部分 IE wc l e
  • 我可以在 Django 中使用 XSLT 吗?

    我们使用 Django 来编写我们的新项目 我们的设计师想要使用 XSLT 编写模板 如您所知 Django 有自己的模板系统 并且我没有任何理由说明为什么设计者不能使用 XSLT 2个问题 我可以在视图中返回 XML 吗 这样做有理由吗
  • 如何正确设置d3.brush范围?

    我正在根据 Mike Bostocks 示例编写 d3 小部件http bl ocks org mbostock 1667367因此 我尝试使用预定义日期设置画笔范围 但范围矩形不适用于这些日期 var brush d3 svg brush
  • 带刻度标签的 Python PyQt4 滑块

    我是 PyQt4 的新手 我正在使用 QSlider 制作 gui 默认情况下 滑块不会显示刻度值 我搜索过 但没有找到简单的方法来做到这一点 那么是否可以或者我必须手动进行 我已经制定了一个解决方案 用于在垂直或水平方向向滑块添加标签 结
  • 如何生成临时 Zip 文件,然后在下载后自动将其删除?

    我有一个下载页面 其中有 3 个下载选项 Word Zip 和 PDF 有一个文件夹包含 doc文件 当用户单击页面上的 Zip 选项时 我希望 ASP NET 使用以下内容压缩文件夹 doc文件到临时 zip文件 然后客户端会从服务器下载
  • 在 g:remoteLink 中传递参数作为 javascript 函数的结果

    在 gsp 文件中我有 javaScript 函数 在 g remoteLink 中我喜欢使用该函数传递参数 像下面这样的东西
  • apache httpclient 4 的 UNICODE URI 编码

    我正在使用 apache http client 4 进行所有 Web 访问 这意味着我需要执行的每个查询都必须通过 URI 语法检查 我尝试访问的网站之一使用 UNICODE 作为 url GET params 编码 即 参数 srh t
  • 使用 INNER JOIN 时出现歧义错误

    我试图从 depts 表中选择 deptno dname 并将其与 emp 表连接以选择 empno 和 ename 然后我想按部门名称对它们进行分组 并按部门升序排序 当加入这两个表时 我一直觉得 deptno 不明确 但这是连接表的共性
  • JavaScript:使用 window.setTimeout 触发 CSS 转换

    这 显然 是一个更大项目的一部分 但我正在尝试触发 CS 转换setTimeout 我知道如何使用 CSS 动画 但这不仅仅是重复的过渡 当属性更改时 将发生 CSS 转换 为了我自己的目的 我使用setAttribute因为这将行为与其他
  • 跨 Java 堆的年轻部分和长期部分的大型数组分配

    是否可以在 Java 堆的年轻区域和永久区域之间分配大型数组 鉴于这些地区有自己的次区域 我认为我稍微简化了问题 我只是想了解一次分配是否可以跨越多个区域 年轻和终身 如果是 那么垃圾收集是如何完成的 因为不同区域使用的策略是不同的 我认为