- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我们有一个带有 JDK8_162 的 Java 应用程序和一些启动参数,如下所示:
-Xms512m
-Xmx512m
-XX:MetaspaceSize=64m
-XX:MaxMetaspaceSize=128m
-XX:+UseG1GC
运行几个小时后,GC并发阶段开始,GC日志如下:
2016-04-18T12:38:56.067+0000: 7352.812: [GC pause (Metadata GC Threshold) (young) (initial-mark)2016-04-18T12:38:56.110+0000: 7352.855: [SoftReference, 0 refs, 0.0000428 secs]2016-04-18T12:38:56.110+0000: 7352.855: [WeakReference, 201 refs, 0.0000261 secs]2016-04-18T12:38:56.110+0000: 7352.855: [FinalReference, 748 refs, 0.0006959 secs]2016-04-18T12:38:56.111+0000: 7352.856: [PhantomReference, 1276 refs, 0 refs, 0.0002082 secs]2016-04-18T12:38:56.111+0000: 7352.856: [JNI Weak Reference, 0.0170219 secs], 0.0748847 secs]
[Parallel Time: 41.4 ms, GC Workers: 8]
[GC Worker Start (ms): Min: 7352813.6, Avg: 7352813.7, Max: 7352813.7, Diff: 0.1]
[Ext Root Scanning (ms): Min: 34.8, Avg: 38.7, Max: 41.0, Diff: 6.2, Sum: 310.0]
[Update RS (ms): Min: 0.0, Avg: 0.8, Max: 2.1, Diff: 2.1, Sum: 6.0]
[Processed Buffers: Min: 0, Avg: 11.4, Max: 38, Diff: 38, Sum: 91]
[Scan RS (ms): Min: 0.0, Avg: 0.0, Max: 0.1, Diff: 0.1, Sum: 0.1]
[Code Root Scanning (ms): Min: 0.0, Avg: 0.0, Max: 0.1, Diff: 0.1, Sum: 0.2]
[Object Copy (ms): Min: 0.2, Avg: 1.6, Max: 4.2, Diff: 4.0, Sum: 12.9]
[Termination (ms): Min: 0.0, Avg: 0.0, Max: 0.0, Diff: 0.0, Sum: 0.0]
[Termination Attempts: Min: 1, Avg: 1.2, Max: 2, Diff: 1, Sum: 10]
[GC Worker Other (ms): Min: 0.0, Avg: 0.0, Max: 0.0, Diff: 0.0, Sum: 0.2]
[GC Worker Total (ms): Min: 41.1, Avg: 41.2, Max: 41.2, Diff: 0.1, Sum: 329.4]
[GC Worker End (ms): Min: 7352854.8, Avg: 7352854.8, Max: 7352854.8, Diff: 0.0]
[Code Root Fixup: 0.0 ms]
[Code Root Purge: 0.0 ms]
[Clear CT: 0.3 ms]
[Other: 33.1 ms]
[Choose CSet: 0.0 ms]
[Ref Proc: 18.2 ms]
[Ref Enq: 0.0 ms]
[Redirty Cards: 0.4 ms]
[Humongous Register: 0.0 ms]
[Humongous Reclaim: 12.3 ms]
[Free CSet: 0.1 ms]
[Eden: 142.0M(289.0M)->0.0B(297.0M) Survivors: 12.0M->10.0M Heap: 298.2M(512.0M)->108.1M(512.0M)]
[Times: user=0.03 sys=0.00, real=0.08 secs]
2016-04-18T12:38:56.142+0000: 7352.887: [GC concurrent-root-region-scan-start]
2016-04-18T12:38:56.160+0000: 7352.904: [GC concurrent-root-region-scan-end, 0.0178533 secs]
2016-04-18T12:38:56.160+0000: 7352.904: [GC concurrent-mark-start]
2016-04-18T12:38:56.207+0000: 7352.952: [GC concurrent-mark-end, 0.0479237 secs]
2016-04-18T12:38:56.208+0000: 7352.953: [GC remark 2016-04-18T12:38:56.208+0000: 7352.953: [Finalize Marking, 0.0008405 secs] 2016-04-18T12:38:56.209+0000: 7352.954: [GC ref-proc2016-04-18T12:38:56.209+0000: 7352.954: [SoftReference, 280 refs, 0.0000776 secs]2016-04-18T12:38:56.209+0000: 7352.954: [WeakReference, 589 refs, 0.0001071 secs]2016-04-18T12:38:56.209+0000: 7352.954: [FinalReference, 81 refs, 0.0000550 secs]2016-04-18T12:38:56.209+0000: 7352.954: [PhantomReference, 273 refs, 4 refs, 0.0000915 secs]2016-04-18T12:38:56.209+0000: 7352.954: [JNI Weak Reference, 0.0005750 secs], 0.0009585 secs] 2016-04-18T12:38:56.210+0000: 7352.955: [Unloading, 1.3772433 secs], 1.3844168 secs]
[Times: user=0.06 sys=0.01, real=1.39 secs]
2016-04-18T12:38:57.593+0000: 7354.338: [GC cleanup 109M->87M(512M), 0.0056146 secs]
[Times: user=0.00 sys=0.00, real=0.00 secs]
2016-04-18T12:38:57.599+0000: 7354.344: [GC concurrent-cleanup-start]
2016-04-18T12:38:57.599+0000: 7354.344: [GC concurrent-cleanup-end, 0.0000237 secs]
卸载操作需要 1.37 秒,有时甚至超过 2 秒。有人知道 GC 在此操作中做了什么以及为什么需要这么长时间吗?
最佳答案
事实证明,当 GC 执行 Unloading
操作时,CPU 使用率很高。在我的系统上,不只是只有一个 Java 进程,另一个 C++ 进程有时会消耗大量 CPU 资源,如果 Unloading
操作在 CPU 使用率较高的情况下启动,则会导致该操作需要更长的时间才能完成。
关于java - 为什么G1 Remark阶段的Unloading Action 耗时太长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49893835/
这是贪吃蛇游戏的部分代码。我想做的是制作关卡(大约3个),如果分数达到一定的分数(100或200),关卡就会改变。 在这段代码中,我尝试让分数达到 100 时进入第 2 阶段。但正如我编码的那样,它只
我是移相器新手。我开始看 youtube 系列,我首先有问题。我的背景图片无法加载。我有这个js代码 /* global Phaser */ var game = new Phaser.Game(12
我有一个包含 2 个阶段的应用程序,我不希望用户关闭第二个阶段,只需将其图标化即可。 目前我正在使用 oncloseRequest 处理程序来最小化窗口 - secondaryStage.setOnC
现在,我有一台运行服务器的基本LAMP配置。生产服务器是slicehost。但是我想知道将代码/数据库实例推送到阶段dev> stage> production的最佳方法是什么。它与您创建阶段的方式有
我在舞台上有一个场景。场景的宽度为 337.0 像素。但是,当我将它添加到舞台时,舞台的大小为 337.6 像素,由于 0.6 像素的差异,在屏幕的右边缘留下了一个白色间隙。 我尝试使用 stage.
我有这个未修饰的窗口: public static void initStartPage(final Stage primaryStage) { final Stage startPa
有什么方法可以在 Maven 构建中执行特定阶段。例如,如果我只想运行那些在预集成阶段执行的插件,Maven 是否提供了一种方法来做到这一点? e.g. mvn pre-integration-pha
仅在构建特定分支时如何运行构建步骤/阶段? 例如,仅当分支名为 deployment 时才运行部署步骤,其他所有内容保持不变。 最佳答案 在声明性管道语法中执行相同的操作,下面是一些示例: stage
我有一个简单的查询,试图在Hive 0.14中运行: select sum(tb.field1), sum(tb.field2), tb.month from dbwork.mytable tb gr
在 Mercurial 中,我经常使用 secret 变更集来跟踪我对尚未准备好推送的内容的工作。然后,如果我需要对某些文件进行紧急更改,我可以更新到公共(public)修订版,进行更改并推送它,而不
我一直在为 Heroku 的新附加组件工作,目前它是 alpha 阶段。因此,目前,我无法在我创建的应用程序上添加该附加组件,因为没有按钮可供我添加它。有人可以向我指出一些可以帮助我解决问题的资源吗?
我有 2 个线程正在运行,一个正在监听 soket 等待命令,另一个启动 javafx 应用程序 public class GraphicInterface extends Application i
在我的 Java Fx 应用程序中,我创建了两个阶段。第一阶段是主 Controller 类 HomeController 中的默认阶段。第二个 AddNewEmailController 是通过调用
我正在编写一个简单的 JavaFX 应用程序,它具有三个阶段:登录、注册 (Anmeldung) 和欢迎 (Anwendung)。 抱歉采用德语命名! 我已经在 App 类中创建了每个舞台及其场景,在
问题是我正在使用 jQuery("form")[0].reset(); 在需要时重置表单。此方法正在将形式重置到初始阶段。这里初始阶段的意思是“表单第一次加载到页面时带有一些值的阶段”。 但我需要的是
我有一个带有 pre-integration-test 和 post-integration-test 阶段的 Maven POM,如下所示。 start-server pre-in
我遇到一个错误,我已经为网络制作了一个 UIPageController,但我似乎无法找到它的问题,只有一个错误,请帮忙。代码如下 - 更多代码点播。 @interface ContentViewCo
考虑在其中放置一些文本的大型 (2000x1000) 舞台。舞台缩小到 1000x500,使文本不可读。然后我们尝试通过放大来放大文本。 预期:文本应该在某个时候再次变得可读。 实际:无论我们放大多少
试图在网页中居中 KineticJS 阶段。 尝试过: 但它集中在舞台的左侧,而不是舞台的中间。我错过了什么? 最佳答案 margin:auto 可以对齐这个div中心 关于htm
我正在 jboss 中部署一个简单的 Web 应用程序,其中包含一个 servlet、一个 jsp 文件和一个 easy EJB。这是 servlet 的代码: package webejb; imp
我是一名优秀的程序员,十分优秀!