是否可以更改 Java ME 中的垃圾收集行为?

2024-01-14

我想知道是否可以调整垃圾收集器在 JavaMe 上的工作方式,以某种方式提高性能(可能会减少段落数量)?我看过一些关于它的文章,但大多是针对 Java SE 的,其中大多数都说 GC 高度依赖于制造商。那会是多少呢。


垃圾收集器何时被触发在很大程度上是一个谜,除非您有第一手资料了解您的应用程序运行的特定虚拟机是如何实现的,以及它是如何针对您使用的特定手机进行配置和定制的。

调用 java.lang.System.gc() 并不能保证垃圾收集器被触发。它通常只会增加虚拟机很快启动垃圾收集的可能性。

我发现在同一个线程中通过 3 个不同的方法连续调用 System.gc() 3 次往往效果相当好。

有很多方法可以解决 JavaME 标准 API 实现中的低效问题,以减少生成的垃圾量:

  • 扩展 ByteArrayOutputStream,这样当您想要访问数据时就不会创建字节数组的副本。

  • 避免调用 StringBuffer.getChars() 和 StringBuffer.toString()。让您的代码使用 StringBuffer 偏移量和长度。

  • 将本地缓冲区(byte[]、StringBuffer...)转换为实例或静态变量(并使用同步保护它们)。显然,这样做会产生开销,但它可以防止您的应用程序由于垃圾收集过于频繁而冻结。

  • 扩展 StringBuffer 以避免在 String 和 StringBuffer 之间来回切换:实现append(String, offset, length)、parseInt(int)、indexOf(String, index)、replace(offset, StringBuffer, offset, length)...

...

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

是否可以更改 Java ME 中的垃圾收集行为? 的相关文章

  • 大型内存映射数组的高效点积

    我正在使用一些相当大 密集的 numpy 浮点数组 这些数组当前驻留在 PyTables 的磁盘上CArrays 例如 我需要能够使用这些数组执行高效的点积C A dot B where A是一个巨大的 1E4 x 3E5 float32
  • 如果我再次使其可用,“最终确定”的对象会发生什么情况?

    好吧 我尝试制作一个最终确定的 object 再次可用 我知道 从甲骨文文档 http docs oracle com javase 7 docs api java lang Object html finalize that finali
  • 使用 JOIN 或 EXISTS 可以获得更好的性能吗?

    我有两个表格 机构 和 结果 我想查看机构是否有任何结果 这样我就可以排除没有结果的机构 使用 JOIN 或 EXISTS 可以获得更好的性能吗 谢谢你 Nimesh 根据语句 统计信息和数据库服务器 这可能没有什么区别 可能会生成相同的优
  • 我应该在 VS Code 中为“json.maxItemsCompulated”设置什么?

    默认状态为 5000 个符号 这取决于机器的性能还是其他什么 从 VS Code 设置 JSON 计算的最大项目数 计算的轮廓符号和折叠区域的最大数量 由于性能原因而受到限制 这与编辑器中的 GUI 按钮相关 您可以使用它来折叠 JSON
  • 性能 - String.charAt(0) 与 /^.{1}/

    从概念上讲哪个应该更快 String charAt 0 or 1 regex String charAt 0 必须处理和应用正则表达式 速度测试资源 Paul S https stackoverflow com users 1615483
  • 创建对象的弱引用

    Actionscript 3 中是否可以创建对对象的弱引用 以便可以对其进行垃圾收集 我正在创建一些类以使调试更容易 因此如果仅在此处引用这些对象 我不希望这些对象挂在内存中 当然我不想用回调填充代码以删除对象 格兰特 斯金纳 Grant
  • 更改为通用接口对性能的影响

    我使用 Visual Studio 使用 C NET 开发应用程序 ReSharper 在我的方法原型中经常建议我用更通用的类型替换输入参数的类型 例如 如果我仅在方法主体中使用带有 foreach 的列表 则使用 List 和 IEnum
  • 为什么 pow(int, int) 这么慢?

    我一直在做一些项目欧拉练习来提高我的 C 知识 我写了以下函数 int a 0 b 0 c 0 for a 1 a lt SUMTOTAL a for b a 1 b lt SUMTOTAL a b c SUMTOTAL a b if c
  • 如何加快编辑距离计算速度

    我正在尝试运行模拟来测试平均值编辑距离 http en wikipedia org wiki Levenshtein distance之间随机 二进制字符串 我的程序是用 python 编写的 但我正在使用这个C扩展 https githu
  • 如何防止Googlebot淹没网站?

    我正在中间的专用服务器上运行一个内容很多但流量很少的网站 有时 Googlebot 会踩踏我们 导致 Apache 耗尽内存 导致服务器崩溃 我怎样才能避免这种情况 在谷歌网站管理员工具上注册 验证您的网站并限制谷歌机器人 提交站点地图 阅
  • 如何提高 Field.set 的性能(也许使用 MethodHandles)?

    我正在编写一些调用的代码Field set https docs oracle com en java javase 11 docs api java base java lang reflect Field html set java l
  • 您可以从 MethodInfo 对象获取 Func (或类似的)吗?

    我意识到 一般来说 使用反射会对性能产生影响 实际上 我本人根本不喜欢反思 这纯粹是学术问题 假设存在一些如下所示的类 public class MyClass public string GetName return My Name 请耐
  • isinstance(foo,types.GeneratorType)还是inspect.isgenerator(foo)?

    Python中似乎有两种方法来测试一个对象是否是生成器 import types isinstance foo types GeneratorType or import inspect inspect isgenerator foo 本着
  • IEnumerable 作为 DataTable 性能问题

    我有以下扩展 它生成一个DataTable从一个IEnumerable public static DataTable AsDataTable
  • 双线性序列给出奇数结果

    我试图让我的表现技能 不存在 达到标准 但在将公式写入代码时遇到了问题 这是我试图将其引用为 转换 为代码的公式 考虑一个序列 u 其中 u 定义如下 号码u 0 1是第一个u 对于每个x in u then y 2 x 1 and z 3
  • 如何有效地从 DB2 表中删除所有行

    我有一个大约有 50 万行的表 我想删除所有行 如果我做简单的delete from tbl 事务日志已满 我不关心这种情况下的事务 无论如何我都不想回滚 我可以删除许多事务中的行 但是有更好的方法吗 如何有效地从 DB2 中的表中删除所有
  • 磁盘寻道时间测量方法

    我编写了一个脚本来测量 HDD 上的寻道时间 并且其完成方式的微小变化会导致显着不同的时间 第一个周期在磁盘开头的区域内进行跳转 第二个周期选择磁盘上执行查找的随机区域 相同大小 这种方法显然不同 但我不明白为什么它会改变结果 请注意 对于
  • .NET 中 UniqueQueue 和 UniqueReplacementQueue 集合最有效的实现

    考虑到入队和出队操作的速度同样重要 NET 中 UniqueQueue 和 UniqueReplacementQueue 集合最有效 就速度而言 的实现是什么 UniqueQueue是一个不可能出现重复的队列 因此 如果我将一个元素推送到队
  • 有谁知道一种更快的方法来执行 String.Split() 吗?

    我正在读取 CSV 文件的每一行 并且需要获取每一列中的各个值 所以现在我只是使用 values line Split delimiter where line是保存由分隔符分隔的值的字符串 衡量我的表现ReadNextRow我注意到它花费
  • 为什么C++代码执行速度比java慢?

    我最近用 Java 编写了一个计算密集型算法 然后将其翻译为 C 令我惊讶的是 C 的执行速度要慢得多 我现在已经编写了一个更短的 Java 测试程序和一个相应的 C 程序 见下文 我的原始代码具有大量数组访问功能 测试代码也是如此 C 的

随机推荐

  • 如何将RequestMappingHandlerMapping和资源处理程序添加到Spring MVC配置类

    我有一个像这样的 Spring MVC 配置类 Configuration EnableWebMvc public class WebConfig extends WebMvcConfigurerAdapter Bean public In
  • Flutter:我可以将参数传递给按钮上 onPress 事件中定义的函数吗?

    我有一个简单的表单 带有一个用于计算表单的按钮 我认为最好点击按钮开始计算操作并将变量传递给哑函数 而不是让函数知道它不需要知道的文本字段 我可以这样做吗 或者我的计算函数是否需要访问我的文本字段 new Container color C
  • 使用 JavaScript 滚动时响应式动画页面元素 [编辑:视差滚动]

    我确信这个问题过去曾被提起过 然而我对一个术语不知所措 On this web page https squareup com careers creative对于 square 用户滚动浏览标题为 在 Square 不同学科协作设计精美简
  • ImageFont.textsize()返回值的单位是什么?

    我正在尝试使用 PIL 来预先计算给定文本行在给定字体和大小下所采用的大小 PIL 似乎或多或少是唯一可行的解 决方案 我不确定返回值的单位是什么font textsize The doc http effbot org imagingbo
  • 在绘图和小平面条之间移动轴标签

    我试图将小面条移动到图的最左侧 以便标签位于条形旁边 分组条位于其左侧 请参见下面的示例 我认为这必须通过 Grob 来完成 但我对这种级别的操作缺乏经验 并且希望得到指导 Data structure list dept structur
  • 如何在存储过程中迭代记录集?

    我需要从存储过程迭代记录集 并使用每个字段作为参数执行另一个存储过程 我无法在代码中完成此迭代 我在互联网上找到了示例 但它们似乎都涉及计数器 我不确定我的问题是否涉及计数器 我需要相当于 T SQL 的foreach 目前 我的第一个存储
  • 如何使用多行字符串示例比较 Cucumber 步骤中的 xml 输出?

    Chargify 在他们的项目中有这个 Cucumber 场景docs http docs chargify com api customers api usage xml customers read Scenario Retrieve
  • 想要在按我的应用程序的启动器图标后返回到上一个活动

    假设我有一个活动 A 启动活动 B 并自行终止 现在 我按下主页按钮 或以其他方式离开应用程序 导致活动 B 的 onPause gt onStop 然后再次单击启动器中的应用程序图标 所发生的情况是 活动 A 再次启动 当然是因为我在清单
  • 使用 C# 替换本机 .exe 中的字符串

    如何捕获本机 Windows exe 文件中的所有字符串 并稍后使用 C 将它们替换为其他字符串 背景 我想创建一个 C 工具来从简单的 exe 文件中提取和替换字符串 这有可能吗 您需要启动一个 PE COFF 解析器 如果你的字符串存储
  • 使用sql从多个字段中选择不同的字段

    我有 5 列对应于问答游戏数据库中的答案 对 错 1 错 2 错 3 错 4 我想返回所有可能的答案而不重复 我希望在不使用临时表的情况下完成此任务 是否可以使用类似的东西 select c1 c2 count from t group b
  • 受保护的成员/字段真的那么糟糕吗?

    现在 如果您阅读 MSDN 中 C 的命名约定 您会注意到它指出属性始终优先于公共字段和受保护字段 有些人甚至告诉我 你永远不应该使用公共或受保护的领域 现在我同意我还没有找到需要拥有公共领域的理由 但受保护的领域真的那么糟糕吗 如果您需要
  • 原始变量和引用变量的内存分配[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions type name 对于引用类型 这
  • Java:返回 java.util.Date 格式的字符串[重复]

    这个问题在这里已经有答案了 我将以 201201 格式接收输入 即 YYYYMM 格式 现在我想按原样返回值 201201 但它应该采用 java util Date 格式 我很困惑 String strDate 201201 Simple
  • Hadoop 溢出故障

    我目前正在开发一个使用 Hadoop 0 21 0 985326 以及一个由 6 个工作节点和一个头节点组成的集群的项目 提交常规 MapReduce 作业失败 但我不知道为什么 以前有人见过这个异常吗 org apache hadoop
  • MS-SQL 查询 - 更新通过存储过程检索的记录

    UPDATE 现在范围已经稍微扩大了 我现在需要检索字段 Id uri linkTo 这如何改变事情 我正在使用 MS SQL 2005 数据库并具有以下存储过程 CREATE PROCEDURE dbo getNewAds region
  • 将数据发送到单独的窗口 javascript

    我使用以下命令从现有页面创建了一个新的弹出窗口 window open myUrl myName width 200 height 200 现在 在该弹出窗口上 我有一个文本输入和一个按钮 我想为按钮创建一个 onclick 方法 将文本输
  • 三星 G5 setvisibility 出现空指针异常

    Android 应用代码可在各种设备上成功运行 包括早至 API 14 至 API 19 目标 但是 Samsung G5 v4 4 4 在尝试为活动设置 Visibilty true 时会抛出 NPE 此错误可能仅在最近通过 Sprint
  • 编组通知包

    我正在尝试将通知对象写入文件 我能找到的最好方法是将对象写入包 编组该包以获取字节 然后将其写入文件 Parcel notif Parcel obtain notification writeToParcel notif 0 byte no
  • 当 Go 返回多个值时到底发生了什么

    Go 函数和方法可以返回多个值 func learnMultiple x y int sum prod int return x y x y return two values 总和 产品 learnMultiple 10 50 是不是和返
  • 是否可以更改 Java ME 中的垃圾收集行为?

    我想知道是否可以调整垃圾收集器在 JavaMe 上的工作方式 以某种方式提高性能 可能会减少段落数量 我看过一些关于它的文章 但大多是针对 Java SE 的 其中大多数都说 GC 高度依赖于制造商 那会是多少呢 垃圾收集器何时被触发在很大