2

我正在寻找资源来了解 Java 数据类型是如何在内部实现的,以及 Fastutil 和 Eclipse Collections 等库如何提供更快的相同实现。我厌倦了浏览 Github 上的代码库(分别为https://github.com/vigna/fastutilhttps://github.com/eclipse/eclipse-collections),但我只知道使用了代码生成器。

但是使用了哪些代码生成器?它们是如何使用的?为什么生成的代码性能更好?如果这些实现更好,为什么它们不是 Java 中的默认实现?

我正在寻找涵盖该主题的任何类型的资源/阅读清单。Youtube 和谷歌没有太大帮助。

谢谢

4

1 回答 1

5

Eclipse Collections 使用StringTemplate生成其原始集合。

您可以在此目录中的 Eclipse Collections 存储库中查找代码生成器的模板(在资源下)和代码。

代码生成本身不会产生性能改进。使用原始集合可以提高内存和性能。避免对所有原始类型的集合进行手动编码是 Eclipse 集合使用代码生成的原因。

这里有一篇文章解释了一些使用 Eclipse Collections 的优化策略。

JEP 218:Generics over Primitive Types旨在解决 Java 中装箱的性能问题。

您应该通过为您的应用程序分析或编写基准来验证任何预期的性能提升。

注意:我是 Eclipse Collections 的提交者。

于 2020-04-24T02:47:49.177 回答