为什么swing的菜单弹出速度没有win32的快,总是要停顿一下? 有没有优化的方法,能象win32写的程序一样快?是不是要把菜单提前载入内存? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 swing的默认感观是跨平台的,当然不如直接调用windows的来的快,可以尝试以下方法UIManager.setLookAndFeel((LookAndFeel) Class.forName("com.sun.java.swing.plaf.windows.WindowsLookAndFeel").newInstance()); 有什么理由证明,多了jvm一道手,就应该会有延迟呢? to ruader() 道理就像你吃一个馒头, 总要先吃掉一点皮(皮没有办法不吃, 掰开不算, 因为JVM是没有办法掰开的)才能吃到肉. 而别人直接买块红烧肉吃..... 经过jvm != 速度慢 !!!java的服务器端应用,你觉得慢吗?建立在weblogic,websphere ,jboss ,tomcat 上的应用会慢吗? to bradwoo8621() : 你这是想当然了! 反而jvm会在运行时动态优化代码,速度能更快。c应用只能在编译时优化,不能在运行时优化。 有没有优化的方法,能象win32写的程序一样快?是不是要把菜单提前载入内存? 只要还用JAVA就没法优化了,win32和JAVA 就是WINDOWS的亲儿子和干儿子,没办法,谁叫咱是后妈养的呢 -.- lixiaoxue85(蛮野蛮) ( ) 信誉:97 Blog 加为好友 2007-04-18 23:30:59 得分: 0 有没有优化的方法,能象win32写的程序一样快?是不是要把菜单提前载入内存? 只要还用JAVA就没法优化了,win32和JAVA 就是WINDOWS的亲儿子和干儿子,没办法,谁叫咱是后妈养的呢 -.- ------------------------ 你不会还是MMX系列的computer吧 什么嘛,明显是自己的程序设计有问题,我从来没碰到过菜单还卡的问题,即使是用在很差的电脑上!jvm现在的效率已经很好了. 其实也不卡,就是反应速度没有win32的快 有可能是因为Swing的双Buffer机制吧,如果是第一次弹出,会慢一些,因为要往内存里面load东西,第二次打开就会快一些,因为已经有一部分东西被握在内存里面,不需要再从新load 比较明显的例子就是JFileChooser,第二次打开明显的比第一次快 swing基于awt,其组件界面是画出来的,所以叫轻量级;awt组件与windows组件是一一对应的,所以叫对等客户端。awt与windows组件的速度差不多,swing就比不上了。 JComboBox的弹出菜单慢吗?我没看出来 Class是预编译的, JVM是解释后的运行. 这就是多一道手吧. 1.6的Swing速度有一些提高了(SUN自己说很大提高了). 运行态动态优化我觉得只是说说而已, 不然你看SWT和SWING比较, SWT就是本地的, 他的标准组件都是和本地组件一一对应的. 速度快很多.并且Swing的机制决定他关联的内容比较多, 比如JTable, 你需要JTableHeader, TableColumn, TableModel, CellRenderer, CellEditor, JScrollPane, JTable等等之类, 速度慢很正常, 这个时候需要考验的是程序员的功力吧.你说的Server端应用不慢我想可能是因为你感觉不到. 实际上Server端引用一般都是要求响应时间的, 你不能说一个请求到server端200ms还没有处理完,(当然也有很耗时间的处理, 这个可能会通过异步方式来做吧),实际上你可以打开服务器的热装载功能试试看, 速度会慢很多的. 我觉得Java在服务器端的强大功能并不是由于他的性能, 而是现在没有更好的其他语言的架构来支持通常的开发应用.另外Swing和Server的差别在于Server你是不需要和本地打交道的, 比如LDAP, JDBC等等, 都是以服务的形式来提供, 而Swing很明显是JVM解释运行, 最终落到native的图形方法上 Swing的组件是用Java2D画出来的!当然比较慢.而且java的解释执行,比C++慢15倍WEB服务器上java当然是最快的,因为asp,php都是完全解释执行的,而java会经过一次编译,然后再解释执行编译后的字节文件.速度比asp,php快多了!而且servlet在执行时,如果遇到新用户请求,服务器只分配它的一个线程,而asp,php还要重新载入一个新的页面到内存,然后再解释.明显又要慢很多. 怎么在一个java项目中使用自己的包呢? http传输速度的问题 电脑语言 弱弱的问下Frame能象Applet一样绘图吗 怎样用反射机制获得基本数据类型的类型 我是新手,请高手帮助~~~我想做个文本输入程序。。请高手多多指点~~~ 运行到frame.setVisible(true);报错 请问JDK版本号后面的参数的意义???? 请问有谁知道 SCJP 考试的时间吗? 急盼!!!在APPLET实现打印程序?哪位大虾请赐教. java 怎么 png转jpg 求救:java操作EXCEL的问题 在线等~~~~~~~~~~~~~
UIManager.setLookAndFeel((LookAndFeel) Class.forName("com.sun.java.swing.plaf.windows.WindowsLookAndFeel").newInstance());
道理就像你吃一个馒头, 总要先吃掉一点皮(皮没有办法不吃, 掰开不算, 因为JVM是没有办法掰开的)才能吃到肉. 而别人直接买块红烧肉吃.....
c应用只能在编译时优化,不能在运行时优化。
是不是要把菜单提前载入内存?
只要还用JAVA就没法优化了,win32和JAVA 就是WINDOWS的亲儿子和干儿子,没办法,谁叫咱是后妈养的呢 -.-
有没有优化的方法,能象win32写的程序一样快?
是不是要把菜单提前载入内存?
只要还用JAVA就没法优化了,win32和JAVA 就是WINDOWS的亲儿子和干儿子,没办法,谁叫咱是后妈养的呢 -.-
------------------------
我没看出来
并且Swing的机制决定他关联的内容比较多, 比如JTable, 你需要JTableHeader, TableColumn, TableModel, CellRenderer, CellEditor, JScrollPane, JTable等等之类, 速度慢很正常, 这个时候需要考验的是程序员的功力吧.
你说的Server端应用不慢我想可能是因为你感觉不到. 实际上Server端引用一般都是要求响应时间的, 你不能说一个请求到server端200ms还没有处理完,(当然也有很耗时间的处理, 这个可能会通过异步方式来做吧),实际上你可以打开服务器的热装载功能试试看, 速度会慢很多的. 我觉得Java在服务器端的强大功能并不是由于他的性能, 而是现在没有更好的其他语言的架构来支持通常的开发应用.
另外Swing和Server的差别在于Server你是不需要和本地打交道的, 比如LDAP, JDBC等等, 都是以服务的形式来提供, 而Swing很明显是JVM解释运行, 最终落到native的图形方法上
而且java的解释执行,比C++慢15倍
WEB服务器上java当然是最快的,因为asp,php都是完全解释执行的,而java会经过一次编译,然后再解释执行编译后的字节文件.速度比asp,php快多了!而且servlet在执行时,如果遇到新用户请求,服务器只分配它的一个线程,而asp,php还要重新载入一个新的页面到内存,然后再解释.明显又要慢很多.