当前位置: 首页 > 面试题库 >

有什么办法可以提高JVM的启动速度吗?

上官飞
2023-03-14
问题内容

据说Java在性能方面比python快10倍。我也从基准测试中看到了这一点。但是真正使Java崩溃的是JVM的启动时间。

这是我做的测试

$time xlsx2csv.py Types\ of\ ESI\ v2.doc-emb-Package-9
...
<output skipped>
real    0m0.085s
user    0m0.072s
sys     0m0.013s


$time java  -jar -client /usr/local/bin/tika-app-0.7.jar -m Types\ of\ ESI\ v2.doc-emb-Package-9

real    0m2.055s
user    0m2.433s
sys     0m0.078s

相同的文件,Docx和Python中的12 KB ms XLSX嵌入式文件快25倍!WTH!

Java需要2.055秒。

我知道这都是由于启动时间造成的,但是我需要通过脚本调用它来解析一些我不想重新发明python的文档。

但是对于解析10k +文件,这是不切实际的。

无论如何都可以加快速度(我已经尝试过-client选项,它只能以很少的速度(20%)加速)。

我的另一个主意?作为长期运行的守护程序运行它,在本地使用UDP或Linux-ICP套接字进行通信?


问题答案:

试试Nailgun。

注意:我个人不使用它。



 类似资料:
  • 问题内容: 有什么方法可以重新启动JVM?如in中,实际上不退出,而是关闭并重新加载所有类,然后从顶部运行main? 问题答案: 最好的选择可能是在一个循环中运行java解释器,然后退出。例如: 如果您希望完全重新引导或关闭,可以测试退出状态: 在Java程序中,可以使用System.exit(0)指示要“重新引导”,而可以使用System.exit(1)指示要停止并保持停止。

  • 我正在做一个有数千个文件加上数千个和,从SSD运行构建需要28分钟。 我们几周前从另一家公司继承了这个项目,但是仔细阅读makefile,他们通过假目标;我们想知道他们是否有充分的理由。 最坏的情况下,唯一的加速方法是使用RAM驱动器。 因此,我按照Tekrevue的说明安装了Imdisk,然后使用CrystalDiskMark运行基准测试: 我还使用Cygwin运行了,与我的SSD相比,RAM驱

  • 问题内容: 我很好奇如何快速进行元组的for循环。 我知道要访问每个成员,您可以使用带点号的索引号 //错误:类型不符合协议顺序 问题答案: 是的你可以! 瞧! 注意最后一个是不是一个元组这样什么也不会发生(尽管它是一个内容可以被访问1元组或“单” ,为0)。 有趣的是,它甚至可以迭代其他类型的集合。 并且该集合包括和! 注意:作为块的第二个参数传递的值是type 。您必须将其强制转换回原始类型的

  • 我一直在关注快板5平台和他的文件管理器使用的教程!openFile.eof(),我听说它不好,我很确定它是什么让我的矢量下标超出范围错误。除了它,还有什么我可以使用的吗?另外,你能检查一下我的图层类,以防我的矢量下标超出范围错误吗?我想不出来,我很确定它来自文件管理器,但我不知道。 它仅输出地图的第一行。当我把它改成“而”(标准:::getline(打开文件,行))时,我甚至从未去过标准::cou

  • 问题内容: 我正在具有8个核心CPU和6 GB内存的Linux 64bit上运行应用程序服务器。 服务器必须具有高响应能力。 经过检查,我发现服务器上运行的应用程序会创建大量的短期对象,并且只有大约200〜400 MB的长期对象(只要没有内存泄漏) 阅读http://java.sun.com/javase/technologies/hotspot/gc/gc_tuning_6.html之后, 我使

  • 所以我做了这个程序,你可以给出一个圆或一条线的参数,它会通过在显示器上画一个数组来显示所述对象。 我知道我的代码可能优化得很差,但我一周前才开始编程。所以如果代码很难理解,请原谅我。 提前谢谢!