python桌面程序打开慢_转 : 终于搞清楚了为什么Java桌面程序总是感觉慢的原因...

终于搞清楚了为什么Java桌面程序总是感觉慢的原因!

按照道理服务器和浏览器都在用脚本和虚拟机,那些不慢,而Java的桌面程序总是感觉响应迟钝呢?主要有两个原因,一是服务器和浏览器都是异步的,提交到渲染出来这中间有足够的时间去处理,而且网络IO要远远慢于本地CPU调用;二是浏览器的界面其实不是JavaScript渲染(很多人可能都会以为HTML是JS绘制的),而是浏览器在操作系统层原生支持的,甚至还做了专门的优化。

Java绘制图形实际上是两层,一层是基于底层绘图API进行桥接,如swing之类的JavaStyle的UI,每一个UI绘制操作都要调用虚拟机API,效率很难提升;第二层使用GUI对象层API桥接(比如WinForm的API,但是不可移植),这种方式减少了很多图形API的Java调用,性能跟原生程序不相上下。pyQT的实现是基于第二种方式的,因此虽然python效率并不高,但是绘制实时图形和GUI没有什么压力。Java的OpenGL也是基于第二种方式实现的,因此也可以流畅地绘制三维图形(如果运算量大就不行了)。

因此,提升Java中桌面程序交互性的关键是用原生库进行GUI层面的绘制,这个有很多了,包括WxWindow/GTK/QT,而且效果也非常酷。Sublime/Blender都是用的这种模式,里面很多程序都是python的,但是界面和图形绘制操作是C++的,调用原生操作系统的API进行绘制(QT是调用的GUI层,使用不同操作系统自己的GUI进行绘制)。

Java桌面程序的开发建议使用Eclipse的框架,开发相容性比较好,插件机制比较完善。但是Eclipse的界面也有上述问题,在虚拟机里响应太慢,我已经基本放弃了。

最新的UI系统都是用OpenGL直接绘制,性能和移植性都比较好,效果自然不用说了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值