問題タブ [dead-code]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 「デッド」コードは Java アプリケーションのパフォーマンスを妨げますか?
Unnecessary Code Detector for Eclipse をインストールして、自分のプロジェクトで実行しました。いわゆる「デッドコード」がたくさんあります。組織の観点からは、不要なコードや不要なコードを削除することは理にかなっていますが、次のように考えました。
デッド コードは実際にJava アプリケーションのパフォーマンスを妨げるのでしょうか?!?!
私にとって、コードが本当に「死んでいる」場合、それは決して実行されないので、それを削除しても(組織/ハウスキーピング/コードのクリーンアップの目的を除いて)パフォーマンスがどのように改善されるかわかりません.
javascript - 高度な最適化によりデッドコードを削除する ClosureCompiler
次のコード:
withADVANCED_OPTIMIZATIONS
は次のようにコンパイルされます。
しかし、このコード:
次のようにコンパイルされます。
なぜ無視できないのhello.a = 5
ですか?
(コンテキスト外では使用できません。 no eval
、 no []
、および noはありませんnew Function()
。)
c - ARM コンパイラ使用時の C デッド コード検出
私は組み込みシステムに取り組んでいます。プログラムにはCを使用し、コンパイルにはARMコンパイラを使用します。
私が取り組んでいるコードは、以前から存在しており、複数の人によって開発されています。関数ポインタも使用します。
デッド コードの検出に役立つツールはありますか? そうでない場合、どのようにすすめますか?
java - リターン START_STICKY のコードに到達できません。
作成中のアプリがありますが、行が START_STICKY を返した後に「到達不能コード」というエラーが表示されます。if (Config.DEVELOPMENT) { で始まり、これを解決する方法がわからないので、ソースが正しく実行されます。
ソーススニペット:
}
完全なソース:
編集:
c - C コードを完全に実行するように変更します (if のすべてのセクションを含む)。
注: 私の質問が明確ではなかったことを認識しています。私は今それを修正しました。そもそも間違いを犯してしまったことをお詫びします。
組み込みシステムで実行する大規模なC プロジェクトがあります。私はARMコンパイラを使用しています。コードは複数のサブフォルダーにまたがっており、.c および .h ファイルで構成されています。
デッドコードを特定し、最も頻繁に使用される関数を高速化できるように、どの関数が何回呼び出されたかを把握したいと考えています。ARM コンパイラには、到達不能なコードを削除するためのいくつかのオプションがあり、関数ポインタが作用すると失敗します。そのため、コードのすべての分岐を調べて、関数への呼び出し回数を数えたいと思います。
例(これは、元のコードではなく、探しているものを示すための非常に単純なプログラムです):
if ブランチのすべてのセクション (つまり、foo1、foo2、および foo3) にアクセスできるように、コード全体を実行したいと考えています。これは、どの関数が何回呼び出されたかを特定するのに役立ちます。上記の例では、foo1() は foo2() より頻繁に呼び出され、foo4() は呼び出されません。したがって、foo4() を特定して削除し、foo1() を最適化することは理にかなっています。
コード全体を実行するためのアイデア/ツールはありますか?
私が考えた方法の 1 つは、メイン関数を次のように変更することでした。
このようにして、元のコードを実行します。このタイプの変更方法について何か考えはありますか?
java - javac コード除去機能
javac
のコード削除機能に関する情報を見つけるのに苦労しています。
次のようなものがある場合、if
ステートメントは削除されると読みました。
しかし、たとえば次のようにするとどうでしょうか。
またはこれ:
javac
プログラムを分析してすべてのデッド コードを見つけることは非常に困難/不可能であるため (おそらく停止問題に似ています)、認識して削除する明確に定義された構造 (上記の最初の例のように) はわずかしかないと思います。確実に。これらの構造の包括的なリストはありますか?
haskell - デッド コードおよび/または Haskell ソースから相互参照を生成する方法
コードベースに未使用の機能がいくつかありますが、特定するのは困難です。この 1 年でコードは進化し、その問題空間と考えられる解決策を探りました。私がしなければならないことは、その未使用のコードを見つけて、それを取り除くことです。エクスポート可能な名前で問題を解決してくれると嬉しいです. GHC には、エクスポートされていない未使用コードに関する警告があります. このタスクに固有のツールは興味深いものです。
しかし、総合的な相互参照ツールに興味があります。このようなツールで未使用のコードを見つけることができます。何年も前に C とアセンブラーで作業していたとき、優れた xref が非常に便利なツールであり、さまざまな目的に役立つことに気付きました。
私はグーグルでどこにも行きません。どうやら Haskell では、相互参照の支配的な意味は、文芸的なプログラミング内にあります。多分何かが役に立つかもしれませんが。