【发布时间】:2012-04-18 12:04:04
【问题描述】:
原始问题
自从我从 1.6.3 更改版本以来。到 1.6.4 我在托管模式下与 GWT 一起工作时遇到严重的性能问题。
2012 年 4 月 18 日更新
在开发环境中的 1.6.4.1 中也可以重现该问题。 现在最好是降级到 1.6.3
2012 年 9 月 7 日更新
根据 Kris Giesing 的说法: 这在 1.7.0 中仍未修复。一个请求在 1.4.3 中需要 330 毫秒来处理,在 1.6.3 中需要 415 毫秒来处理,而在 1.7.0 中需要 13740 毫秒来处理。这来自于 Java 分析代码的计时(无 I/O) - 几乎是 40 倍的减速。
2012 年 9 月 8 日更新
Google 在 google appengine 的公开问题列表的issue 7282 中承认了该问题。
【问题讨论】:
-
我也注意到了,我的代码的某些部分运行速度慢了好几倍。我在调试时注意到,对于基本上每个方法调用或类实例化,一个步骤都会进入 Runtime.checkRestricted 之类的东西,这在早期版本中不会发生。我还没有在云中测试过 1.6.4,所以我不知道它是否只是有问题的本地服务器。我现在的理论是,他们引入了某种对受限代码/类/方法的检查,以防止在线不支持的东西。但这是一个疯狂的猜测。不过知道在线表现会很有趣。
-
请注意,我不使用 GWT,而是使用纯 JSP 和 twig-persist 来实现对象持久性
-
我使用 Spring 和 Objectify,GWT 的瓶颈是服务器端的 RPC 实现。整件事让一切变得缓慢。我降级到了 1.6.3。
-
票证已修复:项目成员 tmat...@google.com 的评论 2,今天(10 小时前)应该用 1.6.4.1 修复。
-
这在 1.7.0 中仍未修复。一个请求在 1.4.3 中需要 330 毫秒来处理,在 1.6.3 中需要 415 毫秒来处理,而在 1.7.0 中需要 13740 毫秒来处理。这是从 Java 分析代码的计时(无 I/O)开始的 - 几乎是 40 倍的减速。
标签: java performance google-app-engine gwt