是否可以更改 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 中的垃圾收集行为? 的相关文章

  • 加快写入文件的速度

    我已经分析了一些我用 cProfile 继承的遗留代码 我已经做了很多有帮助的更改 例如使用 simplejson 的 C 扩展 基本上 该脚本将数据从一个系统导出到 ASCII 固定宽度文件 每一行都是一条记录 并且有许多值 每行有 71
  • 字符串与 StringBuilder

    我理解之间的区别String and StringBuilder StringBuilder是可变的 但是两者之间有很大的性能差异吗 我正在开发的程序有很多大小写驱动的字符串附加 500 正在使用StringBuilder更好的选择 是的
  • 为什么 Roslyn 中有这么多对象池的实现?

    The 对象池 http source roslyn codeplex com Microsoft CodeAnalysis ObjectPool 25601 cs 20b9a041fb2d5b00是 Roslyn C 编译器中使用的一种类
  • 处理 C++ 中执行时间的大量分析

    我目前正在进行一个科学计算项目 涉及海量数据和复杂算法 因此需要进行大量代码分析 我目前依靠的是
  • 使用对话框周围的语句来确保垃圾收集

    我们有一个包含数千个表单的 Windows 窗体应用程序 其中许多通过 ShowDialog 方法临时显示为对话框 该应用程序已经存在多年 我们发现由于表单或其使用的控件中的各种资源泄漏 许多表单没有及时进行垃圾收集 具体来说 我们发现了未
  • 在这种情况下垃圾收集器会做什么? [复制]

    这个问题在这里已经有答案了 我试图了解 GC 将如何行动的两种情况 1 有两个对象 object1 和 object2 object1 引用了 object2 object2 引用了 object1 现在 这两个对象都没有被使用 GC 可以
  • 时间复杂度和运行时间有什么区别?

    时间复杂度和运行时间有什么区别 它们是一样的吗 运行时间是指程序运行所需的时间 时间复杂度是对输入大小趋于无穷大时运行时间渐进行为的描述 您可以说运行时间 是 O n 2 或其他什么 因为这是描述复杂性类和大 O 表示法的惯用方式 事实上
  • 确定向量中是否存在元素的最有效方法

    我有几种算法取决于确定元素是否存在于向量中的效率 在我看来 这 in 这相当于is element 应该是最有效的 因为它只返回一个布尔值 在测试了几种方法之后 令我惊讶的是 这些方法是迄今为止效率最低的 以下是我的分析 随着向量大小的增加
  • 为什么用scala写的代码比用java写的慢6倍?

    我不确定我在编写 scala 代码时是否犯了一些错误 问题是 The four adjacent digits in the 1000 digit number that have the greatest product are 9 9
  • 为什么在方法中声明的对象在方法返回之前会受到垃圾回收?

    考虑在方法中声明的对象 public void foo final Object obj new Object A long run job that consumes tons of memory and triggers garbage
  • 在所有浏览器中启用我的网站的平滑滚动

    我正在开发一个视差滚动网站Stellar http markdalgleish com projects stellar js and Skrollr https github com Prinzhorn skrollr图书馆 该网站在 F
  • JavaFX 中 WebView 的性能

    我有一个 HTML5 UI 和一个 Java 后端 并且希望避免在纯 java 中重建 HTML ui 所以我的想法是运行本地 Web 服务器并使用 WebView 在 本机 窗口中呈现它 解决方案似乎是使用可以嵌入到 swing 中的 J
  • 在 Blackberry 4.2 JDE 上调用 atan 函数

    我需要从我的 Blackberry Java 应用程序计算反正切值 不幸的是 blackberry 4 2 api 没有 Math atan 函数 Blackberry JDE 4 6 版有此功能 但 4 2 版没有 有谁知道计算 atan
  • 当我使用可变参数而不是常量参数时,为什么我的内联表 UDF 慢得多?

    我有一个表值内联 UDF 我想过滤该 UDF 的结果以获得一个特定值 当我使用常量参数指定过滤器时 一切都很好 并且性能几乎是瞬时的 当我使用可变参数指定过滤器时 它会花费明显更大的时间块 大约是逻辑读取的 500 倍和持续时间的 20 倍
  • Haskell:IORef 的性能

    我一直在尝试在 Haskell 中编码一个需要使用大量可变引用的算法 但与纯粹的惰性代码相比 它 也许并不奇怪 非常慢 考虑一个非常简单的例子 module Main where import Data IORef import Contr
  • 哪些属性有助于运行时 .Net 性能?

    我正在寻找可用于通过向加载器 JIT 编译器或 ngen 提供提示来确保 Net 应用程序获得最佳运行时性能的属性 例如我们有可调试属性 http msdn microsoft com en us library k2wxda47 aspx
  • python 日志记录会刷新每个日志吗?

    当我使用标准模块将日志写入文件时logging 每个日志会分别刷新到磁盘吗 例如 下面的代码会将日志刷新 10 次吗 logging basicConfig level logging DEBUG filename debug log fo
  • 为 PostgreSQL 查询选择正确的索引

    简化表 CREATE TABLE products product no integer PRIMARY KEY sales integer status varchar 16 category varchar 16 CREATE INDE
  • 为什么n++执行速度比n=n+1快?

    在C语言中 为什么n 执行速度快于n n 1 int n n int n n n 1 我们的老师在今天的课堂上问了这个问题 这不是家庭作业 如果您正在开发一个 石器时代 编译器 的情况下 石器时代 n比n 比n n 1 机器通常有incre
  • 检查两个数是否是彼此的排列?

    给定两个数字 a b 使得 1 例如 123 是 312 的有效排列 我也不想对数字中的数字进行排序 如果您指的是数字的字符 例如 1927 和 9721 则 至少 有几种方法 如果允许排序 一种方法是简单地sprintf将它们放入两个缓冲

随机推荐

  • 如何将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 高度依赖于制造商 那会是多少呢 垃圾收集器何时被触发在很大