如何让Pydev + Jython在运行脚本时启动更快?
我正在使用pydev和jython,这是一个很棒的开发环境,但当我尝试运行jython程序时,速度有点慢。
这可能是因为加载库的时间太长。
我该怎么做才能加快速度呢?
谢谢,
yaniv
2 个回答
1
如果你的电脑有多个处理器,可以试着用 -vmargs -XX:+UseParallelGC
这个选项来启动eclipse/pydev。你也可以尝试不同的Java虚拟机(JVM),看看哪个能让运行速度更快。
2
Jython启动的速度比较慢,因为它需要加载很多东西!
每次你从头开始运行一个Jython脚本时,都会经历一次相同的启动时间。
所以,Jython、Java和Python在CGI调用时并不是特别合适。这也是为什么Apache中有mod_python的原因。
关键是要一次性启动Jython,然后重复使用它。但在开发过程中,这并不总是可行,因为你的模块总是在变化,而Jython不会自动识别这些变化。
Jython需要一种方法来知道哪些模块已经改变,以便自动重新加载。但这并不是Jython自带的功能,你需要依赖一些第三方库来帮助实现。这个概念是从'sys.modules'中移除那些已经改变的模块。一个简单的解决办法是清空sys.modules中的所有模块,这样就会重新加载所有模块。不过,这显然不是最有效的解决方案。
另一个小建议是,只在你的模块“真正”需要的时候导入所需的模块。如果你在模块的开头就导入所有模块,会增加导入的成本。因此,最好把导入放到需要的地方,比如方法或函数内部,只有在有必要的时候再导入。当然,如果你的方法或函数计算量很大并且使用频繁,那么在这个方法或函数内部导入模块就不太合适了。
希望这些对你有帮助!