2017-05-20 8 views
7

Kotlinはパフォーマンスを向上させますか? ベンチマークはありますか? kotlinはJavaより高速ですか? 私はこれをKotlinのウェブサイトで見つけました。 https://kotlinlang.org/docs/reference/comparison-to-java.html 言語機能については話しますが、パフォーマンスについては説明しません。Kotlinはパフォーマンスを向上させますか?

+2

実際にコンパイル時間は私が考えることができる唯一のパフォーマンスの違いです – Tdorno

+1

@Tdorno私はKotlinがlambdaを呼び出すので、Javaが匿名のクラスを作成するため、Kotlinも読んでいます(ソース:https://redd.it/3ddj8w)この場合、わずかに速くなる可能性があります。しかし、ほとんどの場合、Kotlinは、同じバイトコードで、Javaと同じくらい速くコンパイルしようとしています。 –

+0

どの言語でもJVM上のJavaよりも本当に速くなるという良い方法はないので、Kotlinの質問にはかなり不合理です。 – voddan

答えて

13

Kotlinは、Javaと非常に似たバイトコードを生成するため、Kotlinコードのパフォーマンスは、ほとんどの場合同等のJavaコードのパフォーマンスと同じです。

KotlinがJavaより速い方法の1つはinline functionsです。インライン関数を使用すると、filtermapなどの高次関数を使用するコードは、オブジェクトを作成しない単純なループベースのバイトコードにコンパイルすることができます(同じ種類の関数を使用するJavaコードとは異なります)。

コトリンのベンチマークはhereです。

+0

私はKotlinのインライン関数の違いがどれほど大きいのだろうと思います。 JVM/JITは実行時にメソッドをインライン展開するのにも非常に優れています。 Kotlinコンパイラがインライン展開を行わない場合、JVMは実行時に実行する可能性が最も高いでしょう。 – Jesper

+1

JVMは単純なメソッド呼び出しをインライン展開するのには本当に良いですが、 'filter'関数のコードのようなメガモル的な呼び出しサイトをインライン展開するのはあまり良くありません。 – yole

+2

https://sites.google.com/a/athaydes.com/renato-athaydes/posts/kotlinshiddencosts-benchmarks –

関連する問題