ServiceFramework
ServiceFramework copied to clipboard
MAC OX 下jetty启动时间还是很长.
昨晚同步了代码了,把相关的mysql的那些都做了关闭处理了
可是jetty启动的时间还是很长。
启动方式是在eclipse上点调试按钮,等了大约12秒之后,才启动成功。 然后进行一次 get 请求,输出时间大约1秒多的样子,一瞪一瞪的。。。。请求输出感觉都不咋个流畅。
今天早上测试了 JConsole 和 jvisualvm 进行调试,可是这个是只有进程启动后才能跟踪的。
请问下allwefantasy及各位大大,对于 生命周期加载的的类、方法的执行时间有没有一个比较好的工具。
能查看生命周期过程中,那些类,方法的加载及执行时间。。。。。。
就算是连接相关的服务,redis,mongodb等,我的配置连接都是没问题的。应该不至于需要12秒时间。
可能耗时的时间在哪里呢,而且用jConsole看了下,运行后需要实例化的类有2900多个。 java的程序貌似就是做了很多的无用功,内存占用了8M做,CPU保持在10%以上,这些都和LA(N)MP平台相比相差甚远。。。。
同样的功能需要耗费的资源往往更多。这个和使用 nginx + lua来写差别太大太大了。。。。
不是要因为hadoop的一堆东西,真不咋个想用java,还是说就是其实我们还是没有优化到一定的地步?
JAVA的新手,发牢骚下,勿怪。。。。。
额 我觉得我找到原因了。你的机器配置情况? 你的eclipse 内存分配是多少? 在 2012-10-24,上午9:26,xinqiyang [email protected] 写道:
昨晚同步了代码了,把相关的mysql的那些都做了关闭处理了
可是jetty启动的时间还是很长。
启动方式是在eclipse上点调试按钮,等了大约12秒之后,才启动成功。 然后进行一次 get 请求,输出时间大约1秒多的样子,一瞪一瞪的。。。。请求输出感觉都不咋个流畅。
今天早上测试了 JConsole 和 jvisualvm 进行调试,可是这个是只有进程启动后才能跟踪的。
请问下allwefantasy及各位大大,对于 生命周期加载的的类、方法的执行时间有没有一个比较好的工具。
能查看生命周期过程中,那些类,方法的加载及执行时间。。。。。。
就算是连接相关的服务,redis,mongodb等,我的配置连接都是没问题的。应该不至于需要12秒时间。
可能耗时的时间在哪里呢,而且用jConsole看了下,运行后需要实例化的类有2900多个。 java的程序貌似就是做了很多的无用功,内存占用了8M做,CPU保持在10%以上,这些都和LA(N)MP平台相比相差甚远。。。。
同样的功能需要耗费的资源往往更多。这个和使用 nginx + lua来写差别太大太大了。。。。
不是要因为hadoop的一堆东西,真不咋个想用java,还是说就是其实我们还是没有优化到一定的地步?
JAVA的新手,发牢骚下,勿怪。。。。。
— Reply to this email directly or view it on GitHub.
针对你提出的问题,我觉得可以给你分析一下。
关于Java资源消耗情况以及运行速度 以目前我手头的一个搜索程序为例子,JVM内存配置的最大内存是1G,每天接口访问百万次以上,目前毫无压力,并且CPU压力均匀的分布到了多核上。 如果同样的服务使用Ruby(或PHP)等语言,因为是多进程,以10个进程为例,每个进程200M,那也要2G左右的内存。所以Java的性能和资源利用率你不需要怀疑的。但是任何基于虚拟机的语言都有一个最小合适的内存占用。如果你的内存过少,JVM本身占去大部分,那么工作内存太少就会造成频繁的GC回收。回收会造成程序停顿。如果你发现运行速度比较慢,那是否考虑是否是本身机器还有内存的缘故了。
关于启动速度 对于服务器类应用,启动并不是最重要的,重要的是运行熟读。 JVM启动速度的影响因素很多。我这说几个非常明显的。 对于基于sun hotspot 的虚拟机,是区分client 或者server 模式的。client模式适合桌面应用,这些应用对启动速度要求比较高。所以你可以给你的eclipse 配置参数加上-client 选项。同时给你的工程启动配置选项中也加上-client选项。 对于ServcieFramework项目本身而言,你还可以net.csdn.bootstrap.loader.impl.ModuelLoader 的第58行改为
ServiceFramwork.injector = Guice.createInjector(Stage.DEVELOPMENT, moduleList);
这样的话大部分模块会在启动真正用到的时候新建实例。
不过话说回来,对于你的情况,明显是机器内存不足,或者cpu过于乏力。所以换台机器或者把eclipse等应用的内存占用设置调大一点,保证你速度提升非常明显
我就设置了默认的JVM Eclipse IDE for Java Developers Version: Indigo Service Release 2 Build id: 20120216-1857
JVM内存设置 打开eclipse window-preferences-Java -Installed JREs -Edit -Default VM Arguments 在VM自变量中输入:-Xmx1024m -Xms512m -Xmn256m -Xss128m
汗的了。 我的机器 mac air 13.3 cpu 2.5 * 4 内存是4G 的 ....关键问题是我开了一台虚拟机占了1G内存,导致真的是内存不足 eclipse 是吃内存大户。。。
我把虚拟机关了,空闲内存有1.5G了。。。关键我的mysql,redis,mongodb都布在我的虚拟机里面。。。
汗了,我之前是workspace下放了很多代码,修改了eclipse.ini后竟然启动不了了,删除了workspace后重新启动eclipse后启动代码速度飞快。。。。
汗了,eclipse都在干嘛呢,workspace下的项目都是关闭的,咋个也会影响,好了,现在是很快了,原来是编辑器的问题。汗。。。。。。。。
谢谢allwefantasy
^_^
哈哈 恩 我其实也是在一台机器上使用包括mysql,redis,mongodb之类的。只要数据不大,不会影响太大。Eclipse说实话,是个比较落伍的IDE.莫名奇妙的问题很多(个人认为是插件水平参差不齐导致的)。我建议你业余时间可以试试Intellij Idea. 等上手后再切换过去。一旦上手,你就知道什么才是智能的IDE了。 呵呵