完善第66条的翻译内容 (#48)

* 完善第66条的翻译内容

* 润色第66条
This commit is contained in:
GungnirLaevatain 2020-02-21 12:23:22 +08:00 committed by GitHub
parent aff9ad2da2
commit a3c6656838
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -4,7 +4,7 @@
  使用本地方法访问特定于平台的机制是合法的,但是很少有必要:随着 Java 平台的成熟它提供了对许多以前只能在宿主平台中上找到的特性。例如Java 9 中添加的流 API 提供了对 OS 流程的访问。在 Java 中没有等效库时,使用本地方法来使用本地库也是合法的。
  **为了提高性能,很少建议使用本地方法。** 在早期版本Java 3 之前),这通常是必要的,但是从那时起 JVM 变得更快了。对于大多数任务,现在可以在 Java 中获得类似的性能。例如,在版本 1.1 中添加了 `java.math`BigInteger 是在一个用 C 编写的快速多精度运算库的基础上实现的。在当时,为了获得足够的性能这样做是必要的。在 Java 3 中BigInteger 则完全用 Java 重写了,并且进行了性能调优,新的版本比原来的版本更快。
  **使用本地方法来提高性能的行为很少是明智的。** 在早期版本Java 3 之前),这通常是必要的,但是从那时起 JVM 变得更快了。对于大多数任务,现在可以在 Java 中获得类似的性能。例如,在版本 1.1 中添加了 `java.math`BigInteger 是在一个用 C 编写的快速多精度运算库的基础上实现的。在当时,为了获得足够的性能这样做是必要的。在 Java 3 中BigInteger 则完全用 Java 重写了,并且进行了性能调优,新的版本比原来的版本更快。
  这个故事的一个可悲的结尾是,除了在 Java 8 中对大数进行更快的乘法运算之外BigInteger 此后几乎没有发生什么变化。在此期间,对本地库的工作继续快速进行,尤其是 GNU 多精度算术库GMP。需要真正高性能多精度算法的 Java 程序员现在可以通过本地方法使用 GMP [Blum14]。