Java中大量类与方法的性能

时间:2015-12-16 04:15:48

标签: java performance reflection code-generation dsl

我正在实现一个DSL,它将生成Java类和方法。

由于语言的性质,它将分为运行时和生成的库,运行时将对其进行操作。

我有两个选项来实现这个库,我想知道这两个是否是一个已知的更好的实践。

通常,生成的代码不会预先加载。生成的类将根据需要通过Reflection加载,并使用单独的类加载器来允许由JVM确定的类卸载。反射将直接在生成的代码中的索引中对字符串文字进行操作,以消除对密集内省的需要。

  • 选项1:我的语言代码阻止所有映射到类。这意味着生成大量类(其中许多将是内部类)来实现嵌套作用域。外部类将根据需要通过运行时的反射进行实例化,然后直接构造和使用内部类。

  • 选项2:我的顶级语言构造映射到容器类,这些容器类将根据需要通过运行时的反射进行实例化。嵌套构造将映射到这些容器类中的方法,这些方法将通过运行时的反射来调用。

所以,主要问题是 - 如果存在显着差异,效果会更好吗?

为了实际考虑,我们可能正在考虑近似

之间的比较
  • 选项1:50,000个班级(10,000个外部,40,000个内部)
  • 选项2:10,000,每个都有4个方法,通过反射调用

0 个答案:

没有答案