私のプログラム(アルゴリズムの実装)のすべてのメソッドでインラインで使用しましたが、問題を引き起こす可能性はありますか?メソッド定義でインラインキーワードを使用するとptoblemsが発生する可能性がありますか?
-3
A
答えて
4
コードの外観によって異なります。
しかし、はコードの意味を理解していません?それは間違いなくのです。
なぜあなたは実際にむしろ、すべての問題を引き起こすことが起こって、単純かどうかよりも、を何inline
学ぶしようとしないのですか?
C++でのinline
キーワードの主な効果は、コンパイラにODR(One Definition Rule)を抑制させることです。そのため、非inline
関数は、正確にの1つの変換単位で定義する必要があります。
inline
機能は、使用されるすべての翻訳で定義する必要があります。
したがって、関数の定義方法と場所によっては、inline
がの場合はとなる場合があります。私はあなたの使用が正しいところでそれを使用することをお勧めします。
-1
コンパイラがそれを無視するほどスマートではないと仮定すると、コンパイルされた出力は大きくなり、よりゆっくり実行されることがあります。一般的には、特定の目的を念頭に置いている場合は、 'register'や 'inline'のような最適化キーワードのみを使用してください。コンパイラが知らないことが分かっている場合です。
最新のCPUでは、インライン化はしばしば最適化ではなくペシミションです。これは、関数の各コピーがメモリからフェッチされ、命令がデコードされ、さまざまなキャッシュ、特に分岐予測キャッシュ内の独自の領域を使い果たすためです。
関連する問題
- 1. voidメソッドでスタックオーバーフローエラーが発生する可能性がありますか?
- 2. C#メソッドとプロパティ:例外が発生する可能性があります
- 3. PHPログインスクリプト - セッションエラーが発生する可能性があります
- 4. ProductionでActionCableを使用すると、パフォーマンスの問題が発生する可能性がありますか?
- 5. Direct3DコントロールでVisual Studio 2010を使用すると遅延が発生する可能性がありますか?
- 6. rand.Readerを読むとエラーが発生する可能性がありますか?
- 7. コアデータ属性を設定すると、障害が発生する可能性がありますか?
- 8. 静的メソッドにコンテキストを渡すと、Androidでメモリリークが発生する可能性がありますか?
- 9. FileShare.Deleteを使用するとUnauthorizedAccessExceptionが発生する可能性がありますか?
- 10. スタティックファイルとテンプレートでDjangoバグが発生する可能性があります
- 11. do {lineでSwift 3を使用すると宣言エラーが発生する可能性があります。
- 12. Spring @CacheableとSimpleKeyGeneratorを使用すると衝突が発生する可能性があります
- 13. スレッドローカル変数を使用するActorsの返信でバグが発生する可能性がありますか?
- 14. Android:アクセシビリティサービスのgetRootInActiveWindowでANRが発生する可能性がありますか?
- 15. Javascript Ajaxでデッドロックが発生する可能性がありますか?
- 16. fdopen()でメモリリークが発生する可能性がありますか?
- 17. C#クラスを静的メソッドと変数だけで使用すると、並行性の問題が発生する可能性がありますか?
- 18. DynamicResourceをアプリケーションレベルのリソースに使用すると、リークが発生する可能性があります。
- 19. 再生中にSSHエラーが発生する可能性があります。
- 20. PostSharpコンパイル時に問題が発生する可能性がありますか?
- 21. Array.spliceによってメモリリークが発生する可能性がありますか?
- 22. UIPickerViewスクロールエラーが発生してクラッシュする可能性がありますか?
- 23. GetStringCriticalのデッドロックが発生する可能性がありますか?
- 24. アンドロイドのsdkパスにスペースがあると、eclipseで問題が発生する可能性がありますか?
- 25. 変数定義中に例外が発生する可能性はありますか?
- 26. Expressjでバインディングロスが発生する可能性はありますか?
- 27. トランザクション間でデッドロックが発生する可能性はありますか?
- 28. 同じマシンでUDPエラーが発生する可能性はありますか?
- 29. ラベル「javascript:」で問題が発生する可能性はありますか?
- 30. Javaでメモリリークが発生する可能性はありますか?
-1、インライン関数は、コードセクションのどこかではなく、呼び出された場所に関数が配置されているので、分岐予測とキャッシングをより効率的に行います。キャッシュミスを引き起こすのはジャンプ先です。 – pezcode
@pezcode:ハァッか。どのようにジャンプがキャッシュミスを生み出すだろうか?ジャンプは100%予測可能です。そして、その関数が最近どこからでも呼び出された場合、キャッシュ内では暑くなるでしょう。 –