问题标签 [heap-size]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 当我接近 OutOfMemoryError 时如何在 java 中确定?
我需要找出我真正接近的时间,OutOfMemoryError
以便我可以将结果刷新到文件并调用runtime.gc();
. 我的代码是这样的:
有一个更好的方法吗?有人可以帮帮我吗?
编辑
我明白我是在用这种方式玩火,所以我推断出一种更可靠、更简单的方法来确定我什么时候受够了。我目前正在使用 Jena 模型,所以我做了一个简单的检查:如果模型有超过 550k 的语句,那么我会刷新,所以我不会冒任何风险。
performance - 在 RAM 有限的大型数据库(>100M 基元)上快速执行
我正在开展一个项目,该项目涉及使用来自 PubMed 的数据来查找 MeSH 术语和它们提到的文章之间的联系。我为它构建的 Neo4j 数据库包含约 1100 万个节点和约 1 亿个关系,我正在经历非常缓慢很多情况下的查询时间(30 分钟或更长),包括简单的查询"Match (a:MeSHTerm)<-[:Mentions]-(b:Article) WHERE a.name="Calcimycin" RETURN b"
(即仅查找与名称为 Calcimycin 的节点有提及关系的所有节点)。这一切都是在运行 Ubuntu 12.04 的大学刀片上完成的,RAM 数量非常有限(根据 free 命令,3G 的 RAM,其中 2 个被 neo4j 以外的应用程序使用)。现在,包装器配置将最小 java 堆大小设置为 16mb,最大设置为 64mb(尽管 neo4j 运行时使用的内存与不运行时的内存差异为 1G;任何关于 GB 其余部分在哪里的解释用过的?)。
- 我不确定在不插入交换文件的情况下我可以扩展多少堆大小,因为 free 告诉我在 neo4j 运行时我正在使用所有可用的 RAM 并且
- 如果我们需要扩展为具有更多 RAM 的更强大的系统以获得合理的查询时间。任何建议都将不胜感激,我很乐意尽我所能澄清,尽管我对使用 Ubuntu 还是很陌生。
更新:在标签 MeSHTerm 上添加索引后,基于 100 次随机查询测试,查询时间已提高到平均约 11 秒。还有什么我可以做的吗?我很想把它降低到亚秒级,因为这最终将成为一个基于网络的工具。
c++ - 放大堆大小 C++
有什么方法可以扩大 C++ 程序的堆大小吗?在android中,您可以通过在清单文件中将其声明为大来轻松做到这一点。
当我尝试在堆上分配十亿个数组元素时遇到了这个问题。
java - Java 人体工程学:如何计算默认值?
我正在关注这个问题,发现所有信息都已过时。
最新的指南似乎是有关 GC 调整的文档。Oracle 在其中定义了他们愚蠢的术语人体工程学,我认为这只是意味着合理(“舒适”)的默认值。在该文档中,该文档被称为,在上述 SO 问题中被大量引用。
它声称最大堆大小计算如下:
物理内存的 1/4 或 1GB 中的较小者。在 J2SE 5.0 之前,默认的最大堆大小为 64MB。您可以使用 -Xmx 命令行选项覆盖此默认值。
这显然是错误的,因为我有一台我测试过的机器,它有 12 GB 的 RAM 和 4096 MB,如java -XX:+PrintFlagsFinal -version | grep HeapSize
. 但需要注意的是:
注意:为堆大小指定的边界和分数对于 J2SE 5.0 是正确的。随着计算机变得更强大,它们在后续版本中可能会有所不同。
太棒了!除了我找不到任何关于此的最新文档。我根据这个问题验证了我正在运行一个服务器类。为什么这很重要?因为我的 12 GB 服务器类机器默认为 170 MB。一切都打破了这一点。是的,我知道我可以覆盖它。我宁愿不必在我运行的每个应用程序中复制该覆盖,也不想将其硬编码到 pom 文件中。更重要的是,这个数字在我的机器上以某种方式随机变化,我需要了解它是如何被撞到的。
这是我的java版本:
我在 Mac OS X 10.9.2 上。
apache - Apache Hadoop YARN 中的“mapreduce.map.memory.mb”和“mapred.map.child.java.opts”之间有什么关系?
我想知道mapreduce.map.memory.mb
和mapred.map.child.java.opts
参数之间的关系。
是mapreduce.map.memory.mb
>mapred.map.child.java.opts
吗?
java - 增加java堆大小,在windows中使用eclipse
我正在编写一个 java 程序,在 windows 中使用 eclipse 生成前 5000 万个素数(eratosthenes 筛)。
堆空间的输出是:
它给出了以下错误:
我发现 JVM 有一些 -xmx 命令。我在哪里输入该命令以及使用该命令设置的适当堆大小应该是多少?
我的机器上有 4 GB 的 RAM(64 位 Windows 7)
java - Google play services lib Java 堆空间错误
我从 Google 网站上阅读了一个教程,上面写着使用独立 admob SDK 的旧方式现在已弃用,我们必须通过使用 Google Play Services lib 来使用新方式。我导入 Eclipse,然后将 Google Play Services lib 作为示例添加到我的应用程序“hello world”中,但是当我运行项目时,它加载了 1 分钟,然后它没有运行,并且显示错误:
无法执行 Java 堆空间错误
谁能告诉我如何将广告放入应用程序中?
cakephp - 如何在我的服务器中找到 neo4j 使用的堆大小
我怎样才能找到neo4j在服务器上使用了多少内存。我知道我定义的最小和最大内存。我想知道目前的使用情况。我在我的 cakephp 代码中使用 Everyman Lib
jdbc - Glassfish 3.1.2 JDBC 性能
我有一个运行在 8 GB RAM 上的 Ubuntu 机器。规格是 Jave:java 版本 1.6.0_34 Glassfish 版本 = GlassFish Server Open Source Edition 3.1.2.2(内部版本 5)最大堆大小为 1024。
JDBC 设置全部设置为默认值
初始和最小池大小:8 个连接最大池大小:32 个连接池调整大小数量:2 个连接空闲超时:300
秒最大等待时间:60000 毫秒
我预计在高峰期有1000 个并发用户提交表单。在较低的一侧,至少有 300 个并发用户。我的典型数据库操作使用 PreparedStatement 和 Resultset,它们与 Connection 一起在 finally 块中关闭。该项目使用 JSP、Servlet 和 Pojo。我还没有涉足 EJB 和 JPA。
问题 1:JDBC 连接初始和最小池大小:300 连接最大池大小:1000 连接 池调整大小数量:? 空闲超时:300 秒(保持默认?) 最大等待时间:60000 毫秒(保持默认?)
问题2:代码是否应该手动提交?这会提高性能吗?
问题3:由于数据库服务器SQL 2012是共享的,所以有两个项目共享同一个JDBC Connection Pool。我应该把它分开来改进,因为我知道每个人都会运行自己的线程吗?
问题4:如何计算Heap的大小?这是一个好习惯吗?-服务器 -XX:+AggressiveHeap -Xmx3500m -Xms3500m -Xss? -XX:+DisableExplicitGC
很抱歉让它变得很长。
我只是想了解如何扩展服务器?
java - 如何在 Android 中增加堆大小?
所以我的问题与此类似: Android:如何在运行时增加堆大小?
但是,由于我不处理缓存,因此提供的关于更好的缓存实现的答案不适用于我。我的目标是分配一个大堆作为我认为 GC_CONCURRENT 正在影响的计时问题的临时解决方案,我的目标是分配一个堆以使 GC_CONCURRENT 不会发生。我想强调我没有内存泄漏,因为当 GC_CONCURRENT 运行时它总是释放 15% 并且这个数字不会下降,我已经优化了我的代码,这样我在任何循环中都没有变量初始化,事情是尽可能声明为静态和最终的。
我已经尝试过设置android:largeHeap="true"
,但它没有明显的效果,所以我正在寻找一些不是对操作系统的礼貌请求并且实际上与折旧的东西相同的东西VMRuntime.getRuntime().setMinimumHeapSize(BIGGER_SIZE)