問題タブ [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.
ios - デッド ストアを回避するために文字列を適切に初期化する方法
このような質問がいくつか見つかりましたが、この特定の質問は見つかりませんでした。次のように初期化される文字列がいくつかあります
if/else ブロックの結果に応じて値が割り当てられます。
その後string
、メソッドの後半で使用されます。
alloc/init 段階で死んだストアを残さずにこれを達成するにはどうすればよいですか? if (または else) 内に割り当てた場合、数行下に必要になるまでに文字列がなくなってしまいます。
ruby-on-rails - DeadRailsコードを探す
もう呼び出されていないメソッドを見つけるための良い方法は何ですか?私は大規模なRailsアプリケーションをリファクタリングしている最中であり、あなたが見つけることができる最悪のことは、もう使用されていないコードです。
function - gccの奇妙な振る舞い、未使用の関数を削除するためのld(リンカー)オプション
gcc /g++を使用してx86/Linuxでビルドされたコードで、未使用の関数(呼び出しが行われていない)を削除しようとしています。gccマニュアルから読んだように、以下のオプションを使用します。
Makeコマンドの出力には、以下のようにいくつかの未使用のセクションが削除されたメッセージが表示されます。
ただし、念のため、そのシンボルが* .oオブジェクトファイルに存在するかどうかを確認しようとしたので、次のようにします。
以下のような出力が表示されます
どうしたの?
未使用の関数は、これらのgcc/ldオプションによって実際に削除されていますか。
objective-c - 'valid'に保存された値が読み取られることはありません
特定の変数が検証基準に合格するかどうかを分析する検証方法があります。
コードは次のとおりです。
Value stored to 'valid' is never read
最終的にメソッドの最後に返されるため、奇妙な3つのインスタンスを取得しています。
変数を設定する最初の3つのインスタンスで、次の3つだけで取得しています。
誰かがここで助けることができますか?
javascript - JavaScript エンジンが省略しそうなコードはどのようなものですか?
(これはちょっとした XY 問題ですが、現時点で厳密に必要な質問ではなく、興味のある質問をすることにしました。) さまざまな最新の JavaScript エンジンには、デッド コード エリミネーターやその他の削除手段があることを知っています。効果も副作用もないコードですが、そのようなコードをどのように識別および/または構成しますか?
デッド コードの削除に関するウィキペディアの記事では、到達不能コード、つまりreturn
、関数内の無条件ステートメントの後に発生するコードの単純な例を示しています。しかし、そのようなコードを排除するために、最新の主要な JavaScript エンジンを当てにできるでしょうか? たとえば、Rhino または V8 はこのコードを排除しますか?
op関数がない場合はどうなりますか?
これらの例はすべて JSHint をだますものであり、JSLint は奇妙な割り当て foo = foo
をキャッチしますが、noops または変数のペアを使用して非常に簡単にだますことができます。
静的コード アナライザーをだますことができれば、エンジン自体をだますでしょうか?
すべての異なる JavaScript エンジンのソースを綿密に調べる以外に、プログラムが実行される前に確実に削除される種類のコードを特定および/または構築する方法はありますか?省略されていませんか、それとも単なる設計上の選択ですか?
c++ - C ++-速度テストを実行する適切な方法は何ですか?
関連情報を尋ねる質問をたくさん検索しましたが、答えは私が答えたいと思っていたものと完全には一致しませんでした。できる限り問題を説明しようと思います。
基本的に、リリースモードでコードを実行すると、コンパイラは冗長またはデッドコードであるほとんどのコードを削除するように見えます。したがって、何もチェックしないことになります。いくつかの修正は、コードをいくつかの変数に格納することでしたが、コンパイルはループを削除し、最後の増分を格納するように見えます。
今、使用するコードを改善する最適化を行いたいのですが、それでも元々行っていたすべてのことを望んでいます。たとえば、コードを100,000回ループさせた場合、実際にコードを100,000回実行することを期待しています。Visual Studio 2010でコンパイラを変更して、リリースモードでコンパイルするときに最小限の最適化が行われるようにする方法がわかりません。正確に時間を計りたいのですが、正確に時間を計る方法がわかりません。
最初は、デバッグなしでデバッグを実行すると問題が解決する可能性があり、結果がJavaアプリケーションの結果と一致したため、非常にそう思われましたが、リリースモードで実行すると、結果がめちゃくちゃ速くなり、混乱します。最適化においてC++がはるかに優れているのか、それとも大量のコードが変更されているのかはわかりません。
おそらくコードを分解して、コンパイルがコードをコンパイルしたものを表示する方法はありますか?これは私が見たいもう一つのテストですが、私はこのことについてあまり知りません、そして正しい方向に何かが大いにありがたいです。私が何を求めているのかをある程度理解できる人に感謝します。当面の質問に対する誤解や不確実性に関するご質問には、喜んでお答えいたします。
java - Eclipse での不要なデッド コード警告
次のコードは、Eclipse で「デッド コード」警告を表示します。
という行に警告が表示されますroot = e;
。
デッド コードを調べたところ、コード ハットは効果がないため、Java コンパイラによって無視されることがわかりました。
ただし、このルートは私のクラスのプライベート フィールドであるため、プログラムの機能のためにこれを行う必要があります。
コンパイラは本当にこれを無視しますか? どうすればそれを止めることができますか? なぜそれがデッドコードだと思うのですか?
java - 2 つの if がある while ループでのデッド コード警告
Eclipse が 2 番目の if 条件のコードに対してデッド コード警告を表示する理由がわかりません。
LinenumberReader の readLine() メソッドの jdoc はnull
、ストリームの最後に達した場合に戻ると述べているため、テキスト全体で一致が見つからない場合 ( line == null
)、例外をスローする必要があります。
しかし、何が問題なのですか?
c - Visual Studio 2005 で参照されていない C/C++ コードを検出する方法は?
私は Visual Studio 2005 を数年間使用しており、通常、プロジェクトはどんどん大きくなっていますが、今ではサイズが縮小しているプロジェクトがあり、その大きな塊 (ほぼ半分) を取り除いています...エントリポイント関数を削除することで、コンパイラが参照されていない関数のリストを提供し、それを削除することを期待していましたが、不要なコード全体が完全に削除されるまで続きます...しかし、驚いたことに、「参照されていない関数」はリストされていませんでした.
Turbo C の昔のことを思い出します。どこにも呼び出されていない関数があると、コンパイラはすぐに抗議しました... Visual Studio にこの機能がない理由がわかりません。プロパティ ページ全体を確認し、体系的な方法でデッド コードを取り除くのに役立つものが見つかりません。
Visual Studio はデッド コードを検出できますか? もしそうなら、どうすればそのような機能を有効にできますか?
c++ - VS C++ デッド コードの除去
私は C++ VS 2010 で小さなプロジェクトを持っており、いくつかの静的リンク ライブラリ (.lib ファイル) を使用しています。
次のオプションがオンになっています: OPT:REF、OPT:ICF、/GL、GR-
未使用のメソッドを静的ライブラリのコードを使用するクラスに追加すると、コンパイラはより大きなコードを生成しました (つまり、このメソッドを最終的な実行可能ファイルに含めます)。
なんで?私は何を間違っていますか?