【发布时间】:2016-08-29 17:16:25
【问题描述】:
我有一个使用大量并行执行(线程池、Java 8 流等)的大型 Java 框架。当我在纯 Java 中使用它并在计算繁重的任务中最大程度地加载所有 8 个内核时,它可以正常工作。
现在我为我的 java 类制作了一个精简的 Groovy 包装器来简化配置。我期望在 Groovy 调用上会有一点性能开销,但编译后的 Java 类的性能应该是一样的。在实践中,我看到性能大幅下降,程序仅使用一两个内核到 40-50%。当我将 Groovy 代码包装在 GroovyShell 中并从 Java 主类中调用它时,一切正常,我的性能恢复了 100%。
有什么问题? Groovy 启动器是否会覆盖某些默认线程池配置?
我正在使用 Java 8、Groovy 2.4.7 并从 Idea 调用 Groovy 脚本。
【问题讨论】:
标签: java multithreading groovy