高水準プログラミング言語と低水準プログラミング言語の間の実行時間について話すとき、低水準言語は高水準言語よりもパフォーマンスが少し優れているとよく耳にします。
もちろん、プログラマーやアルゴリズムによっては、低レベルが高レベルよりもパフォーマンスが低下する可能性があります。しかし、さまざまなタスクを実行するために必要な最小限のコードを使用する場合. 異なる言語の抽象化レベルにより、実行時間に違いが生じることが最も多いでしょうか?
また、この種のトピックに関する良い本を誰か知っていますか?
高水準プログラミング言語と低水準プログラミング言語の間の実行時間について話すとき、低水準言語は高水準言語よりもパフォーマンスが少し優れているとよく耳にします。
もちろん、プログラマーやアルゴリズムによっては、低レベルが高レベルよりもパフォーマンスが低下する可能性があります。しかし、さまざまなタスクを実行するために必要な最小限のコードを使用する場合. 異なる言語の抽象化レベルにより、実行時間に違いが生じることが最も多いでしょうか?
また、この種のトピックに関する良い本を誰か知っていますか?
まず、低レベル対高レベルは明確に定義された言語属性ではありません。プリミティブ マシン機能のアクセシビリティ、言語が提供する抽象化機能、および利用可能なライブラリの特定の抽象化レベルを記述するために使用される傾向があります。そして、これらの側面はほぼ間違いなく相関していますが、信頼できるほど相関しているわけではありません。
マシン プリミティブにアクセスできないと、汎用パフォーマンス プログラミングの柔軟性が自然に失われますが、そのようなアクセスのない言語は、特定のドメインに特化したライブラリやランタイムを使用することで、特定のドメインで高いパフォーマンスを実現できます (たとえば、NumPy や Matlab のリニアなパフォーマンス代数)。
抽象化機能が貧弱であると、設計、開発、使用、再利用、および保守が困難になります。これは必ずしも潜在的なパフォーマンスに直接影響を与えるわけではありませんが、実際には、メカニズムに費やされた努力がパフォーマンスの向上に使用されているわけではありません。同様に、高レベルのライブラリの欠如は必ずしもパフォーマンスに直接影響を与えるわけではありませんが、重要な機能の再実装が不十分に構築されていると、同じ効果が生じる可能性があります。
したがって、あなたの質問に答えると、言語の「レベル」が一般的にパフォーマンスを決定する側面はありません。でも、必ず「でも」はある…
さらに、プリミティブ機能へのアクセスと優れた抽象化機能および広範なライブラリを組み合わせた C++ などの「広域」言語にはコストがかかります。複雑さと認知負荷は、(IMHO) さまざまな側面間の前述の相関のドライバーです。言語の「レベル」。