IBM RAD 7 和 Websphere 6.1 缓慢且无响应
使用 Websphere 和 RAD 进行本地开发时如何提高性能? 我正在使用一个中等大小(1000?类)的 Web 应用程序,并且不可能在 Windows 机器上本地处理该应用程序。 Websphere 6.1 配置使用默认配置。 RAD7 配置为处理最大 1024mb 的堆。 我考虑过增加服务器的堆。 目前,最小和最大为 128/300mb。
就无响应而言,有时可能需要几分钟才能加载页面(如果页面完全加载)。 另外,我禁用了“自动构建”和自动发布。 也许应该打开这些?
How can I improve performance when developing locally with Websphere and RAD? I am using one web application of moderate size (1000? classes) and it is impossible to handle the app locally on a Windows box. The Websphere 6.1 configuration uses the default configs. RAD7 is configured to handle a max heap of 1024mb. I thought about increasing the heap of the server. At present, the min and max are 128/300mb.
In terms of unresponsiveness, sometimes it may take minutes to load a page, if the page loads at all. Also, I disabled "Build Automatically" and Publish Automatically. Maybe those should be turned on?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
我不确定 RAD7,但根据我过去的经验,我建议尝试 MyEclipse Blue。
由于这可能不是一个选择,这里有一些其他常见的罪魁祸首,您可以检查:
您的机器有多少 RAM? 给 WS 1GB 的 RAM 固然很好,但如果你的电脑只有 1GB 的真实 RAM,它就会自行交换而死。 如果你的老板不肯付钱,那就用你自己的钱去买一些内存吧。 2GB ATM 还不到 80 美元。 我建议至少购买 4GB。 是的,即使安装了 4 个,Windows 也只能使用 3.5GB,但这半 GB 的成本为 20 美元或更少。 即使考虑这个问题超过五分钟,也比简单地购买它花费更多。
接下来确保您使用的 Java GC 选项是否正确。 文档中应该有一些关于此的信息。 另外,请确保该进程使用“服务器”目录中的“jvm.dll”,而不是“客户端”目录。 “Process Explorer”会有所帮助。
由于我没有使用 RAD,所以我不能 100% 确定“自动构建”和“自动发布”,但由于 RAD7 基于 Eclipse,这些选项将在您键入时在后台编译代码。 这将大大缩短您保存最后一次更改和应用程序服务器开始加载新代码之间的时间。
当所有其他方法都失败时,在探查器中运行 websphere 并查看它一直花费在哪里。
当所有
I'm not sure about RAD7 but from my past experience, I'd suggest to give MyEclipse Blue a try.
Since that might not be an option, here are some other usual culprits, you can check:
How much RAM does your machine have? It's good to give WS 1GB of RAM but if your computer only has 1GB of real RAM, it's going to swap itself to death. If your boss won't pay for it, go get some RAM with your own money. 2GB are less than $80 ATM. I suggest to get at least 4GB. Yes, Windows can only use 3.5GB even when 4 are installed but that half GB costs $20 or less. Even thinking about this for more than five minutes will cost more than simply buying it.
Next make sure whether you are using the correct Java GC options. There should be some info about this in the docs. Plus make sure that the process uses the "jvm.dll" from the "server" directory, not the "client" one. "Process Explorer" will help.
Since I'm not using RAD, I'm not 100% sure about "Build Automatically" and "Publish Automatically" but since RAD7 is based on Eclipse, these options will compile code in the background as you type. This will greatly reduce the time between you saving your last change and the moment the app server can start to load the new code.
When all else fails, run websphere in a profiler and look where it spends all the time.
亚伦有很好的建议。
我还建议使用 JConsole 来查看发生了什么,以帮助您确定是否需要更多内存、更大的堆大小等。我在本地运行 Websphere 和 RAD 的经验是它会很慢,但后来我在需要更多内存的旧机器。 :)
http://java.sun.com/j2se/ 1.5.0/docs/guide/management/jconsole.html
Aaron had great advice.
I would also suggest using JConsole to see what is going on, to help you determine if you need more memory, larger heap size, etc. My experience with running Websphere and RAD locally is that it will be slow, but then I was on an old machine that needed more memory. :)
http://java.sun.com/j2se/1.5.0/docs/guide/management/jconsole.html
柏林,
RAD 7 耗尽您的电脑! 当我使用它来开发 Portlet 时,我遵循了这个优化指南 它使 IDE 开发 Portlet 的速度显着加快。显然,它是针对 Portlet 开发的,但它可能会对您有所帮助。
另请遵循对 this 的答案给出的建议问题也会有帮助。
Berlin,
RAD 7 saps your PC! When I was using it to develop Portlets, I followed this optimization guide and it made the IDE significantly quicker to develop Portlets in. Obviously it is aimed at Portlet development but it might help you.
Also following the advice given to the answer to this question will also help.
我绝对同意亚伦·迪古拉的观点。 在开发计算机上安装 4GB RAM 后,您将看到性能的重大改进。 我和一些朋友开发了一个 Eclipse/RAD 插件,我们能够测量从 2GB 升级到 4GB 节省了多少时间。
该插件可在此处获取:http://lopb.org/
收集了一些关于我们花费了多少时间的硬数据后在等待在 2GB 开发机器上发布和加载应用程序时,我们能够说服管理层升级团队中的其他开发人员。
不管怎样,如果您想在同一台开发机器上运行 RAD 7 和 Websphere 6,您确实应该考虑升级到 4GB。 每个都需要 -Xms=512m -Xmx=1024m 作为 JVM 参数才能正常运行,这意味着如果您只有 2GB 或更少的 RAM,您将过多地交换到磁盘。 华泰
I definitely agree with Aaron Digulla. You will see a major performance improvement with 4GB RAM installed on your development machine. I developed an Eclipse/RAD plugin with some buddies of mine and we were able to measure how much time we saved by upgrading from 2GB to 4GB.
The plugin is available here: http://lopb.org/
After gathering some hard numbers on how much time we spent waiting for publishing and loading the app on our 2GB development machines, we were able to convince management to upgrade the rest of the developers on the team.
Anyway, you should really consider upgrading to 4GB if you want to run RAD 7 and Websphere 6 on the same development machine. Each one needs -Xms=512m -Xmx=1024m as JVM args to run well, and that means you will swap to disk way too much if you only have 2GB of RAM or less. HTH
确保您的运行处于开发模式以进行开发和测试。
选项位于控制台中的服务器下方。
卡尔
Make sure your running was in development mode for your development and testing.
Option is under the server in the console.
Karl
呵呵,我们在 RAD6 和 Websphere 6 上也遇到了同样的问题。
我们加快速度的方法已转移到 Eclipse 和 JBoss 上。
我们在 Eclipse 和 JBoss 上进行开发,然后第一轮测试在 Websphere 上进行。 我们在差异方面遇到了一些问题,但如果没有外部切换,我们永远无法完成该项目(比 RAD/WAS 上的开发问题少得多)。
但同时为您提供帮助...
Websphere 中有一个“在开发模式下运行”(我知道 6.0 中有),因此跟踪它并将其打开(它位于 WAS 控制台的某处)
我发现 WAS 的堆栈替换工作得相当好。 我发现在一天开始时我会部署到 WAS,然后至少在午餐时间之前不必重新部署(因为我正在调试)。 我会进行更改,并且更改将被传送到服务器,而无需重新部署。
很可能,即使在运行探查器之后,您也会发现没有什么可以做的。
很可能,即使
根据您使用 EE 所做的事情调查开发另一个 IDE/服务器组合的可能性,也许您可以在那里完成大部分工作,然后从 RAD/WAS 进行部署以进行一些最终测试。 如果您使用的是普通 ejb 或 Web 服务,这是可行的。
那个最大堆对我来说确实有点小。 启动 JConsole 的建议是一个很好的建议,因为它会告诉您正在使用多少堆,尽管我不确定它是否适用于 IBM vm(RAD)。 您可以尝试打开 RAD 中的内存使用监视器,告诉您正在使用多少内存,这样您就可以知道它是否达到了最大值。
hehe, we had the same problem with RAD6 and Websphere 6.
The way we speeded things up is moved to Eclipse and JBoss.
We developed on Eclipse and JBoss and then first round of testing was on Websphere. We had some issues with the differences but would never had completed the project were it not for out switch (a lot fewer issues than deving on RAD/WAS).
But to help you in the mean time...
There is a "run in dev mode" in Websphere (I know there was for 6.0) so track that down and turn it on (it's on the WAS console somewhere)
I found WAS's on stack replacement to work fairly well. I found that at the beginning of the day I'd deploy to WAS and then not have to redeploy at least until lunch time (as I was debugging). I would make changes and the changes would be fed to the server without my having to redeploy.
Chances are, even after running the profiler you'll find there's nothing much that you can do..
Turn off all validations (in RAD), they tend to take forever.
Depending on what you're doing with EE investigate the possibility of deving on another IDE/Server combo, maybe you can do the bulk of your work in there and then deploy from RAD/WAS to do some final testing. If you're using vanilla ejb's or web services this is feasible.
That max heap does sound a bit small to me. The suggestion to fire up JConsole is a good one cause it will tell you how much heap is being used, though I'm not sure if it will work on the IBM vm (RAD's). You might try and turn on the memory usage monitor in RAD, tells you how much memory is being used, that way you can tell if it's hitting the max.
如果没有通过 JVM 命令行开关专门启用 JConsole,则 JConsole 将无法工作。
Michael Wiles 的建议听起来很合理,但请先将您的 RAD 更新到最新的可用修复包。
您还可以联系支持人员。
JConsole will not work without specifically enabling it via a JVM command line switch.
Suggestions from Michael Wiles sound reasonable but please update your RAD first to the latest FixPack available.
You can also contact support.