问题标签 [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.

0 投票
4 回答
2283 浏览

java - “死”代码会阻碍 Java 应用程序的性能吗?

我刚刚为 Eclipse安装了Unnecessary Code Detector并在我的项目中运行它。我看到很多所谓的“死代码”。尽管从组织的角度来看,删除死/不必要的代码是有意义的,但它让我思考:

死代码真的会阻碍 Java 应用程序的性能吗?!?!

对我来说,如果代码真的“死”了,它永远不会被执行,所以我看不出删除它(再次,除了组织/内务/代码清理目的)如何提高性能。

0 投票
1 回答
228 浏览

opengl - GLSL:删除死代码会导致视觉错误

在尝试在 opengl 着色器中编写光线跟踪器时,我遇到了很多奇怪的问题。我试图确定错误的来源是否是我自己,通常情况就是这样,但我得出的结论是,其中一些问题可能只是我的图形驱动程序中的错误(我在 ATI 上)。在这些情况下,我刚刚实施了解决方法。

但我只是遇到了一些我不确定如何解决的问题(至少没有真正奇怪的代码),事实上我无法将我的一些数据从统一数组切换到纹理缓冲区,因为我删除的那一刻对统一数组的引用(它不再做任何事情;我已经删除了数据的任何实际使用),我的着色器看起来像这样:

https://dl.dropboxusercontent.com/u/39921754/bug_pic_0.png

对此:

https://dl.dropboxusercontent.com/u/39921754/bug_pic_1.png

请注意,移动相机也会导致您看到的内容发生不规律的变化。

这是我要更改以获得这些结果的方法:(有问题的行已被注释掉,它们访问统一数组 quad_vertex_indices)

}

在我看来,这只是一个编译器问题,但如果不是,那就太好了,因为这意味着我可以修复它。

有谁知道这可能是什么原因,我的选择是什么?我受到时间限制,所以我正在考虑只是做一个黑客来让它工作(即只留下线条,或类似的东西)

0 投票
2 回答
341 浏览

javascript - ClosureCompiler 通过高级优化删除死代码

以下代码:

withADVANCED_OPTIMIZATIONS编译为:

但是这段代码:

编译为:

为什么它不能忽略hello.a = 5?

(它不能在上下文之外使用,没有eval, no[]和 no new Function()。)

0 投票
1 回答
827 浏览

javascript - 如何使闭包编译器在大型项目中通过高级优化删除所有死代码?

以下代码:

由 Closure 编译器对此进行了优化:

(它留下了死代码。)

但是,如果我删除最后一行(仅重复调用 24 次),它会删除死代码。结果是空的。

如何强制 Closure 编译器在大型项目中也删除所有死代码?

0 投票
1 回答
57 浏览

asp.net - 我需要一种从 ASP.NET 2.0-4.0 站点中删除“死页”的方法

我在一家公司接手了大约 30 个项目。多年来,运行事物的人直接在服务器上工作。有大量死页会导致 Visual Studio 崩溃。

我有 JetBrains Resharper(最新),还有 Telerik Full Suite 及其所有工具。

我怎样才能剔除这些死页,是否有一些自动化的方法可以清除这些废话并构建这些东西?这些站点的范围从 Windows 2003 和 IIS 到带有 IIS 的 Windows 2008。

当我们去构建时,我们会得到 4100 个错误,这相当多,只是要找出来。

我喜欢一些想法、技术、工具等……这可能有助于完成这项任务。

0 投票
2 回答
359 浏览

c - 使用 ARM 编译器时的 C 死代码检测

我正在研究嵌入式系统。我使用C编程和ARM编译器编译。

我正在处理的代码已经存在了一段时间,并且由多个人开发。它也使用函数指针

是否有任何工具可以帮助我检测死代码?如果没有,你建议我怎么做?

0 投票
2 回答
591 浏览

java - 返回 START_STICKY 时无法访问代码;

我有一个正在构建的应用程序,但是在返回 START_STICKY 行后遇到了一个错误,指出“无法访问代码”;从 if (Config.DEVELOPMENT) { 开始,我不确定如何解决这个问题,以便我的源代码正确执行。

源代码段:

}

完整来源:

编辑:

0 投票
3 回答
145 浏览

c - 更改 C 代码以完全运行(包括 if 的所有部分)

注意:我意识到我的问题并不清楚。我现在已经修改了它,并为首先犯的错误道歉。

我有一个要在嵌入式系统上运行的大型C 项目。我使用ARM 编译器。代码分布在多个子文件夹中,由 .c 和 .h 文件组成。

我想盘点一下什么函数被调用了多少次,这样我就可以识别死代码,也可以加速最常用的函数。ARM 编译器有一些用于删除无法访问的代码的选项,当函数指针起作用时它会失败所以,我想遍历代码的每个分支并记录对函数的调用次数。

例如(这是一个非常简单的程序来演示我在寻找什么,而不是原始代码):

我想运行整个代码以便访问 if 分支的所有部分(即 foo1、foo2 和 foo3)。这将帮助我确定哪个函数被调用了多少次。在上面的示例中,foo1() 的调用频率高于 foo2(),而 foo4() 从未被调用。因此,识别和删除 foo4() 并优化 foo1() 是有意义的。

运行整个代码的任何想法/工具?

我认为的一种方法是修改 main 函数,如下所示:

这样它就可以通过原始代码运行。知道如何进行这种类型的修改吗?

0 投票
4 回答
466 浏览

java - javac代码消除能力

我很难找到有关javac的代码消除功能的信息:

我读到,如果您有类似以下内容,则if- 语句将被消除:

但是这个怎么样,例如:

或这个:

由于分析程序以找到所有死代码(可能类似于停止问题)非常困难/不可能,我想只有少数定义明确的构造(如上面的第一个示例),它们javac将识别并删除可靠。是否有这些构造的完整列表?

0 投票
2 回答
494 浏览

haskell - 死代码和/或如何从 Haskell 源代码生成交叉引用

我的代码库中有一些未使用的功能,但很难识别。随着我探索其问题空间和可能的解决方案,代码在去年发生了变化。我需要做的是找到未使用的代码,这样我就可以摆脱它。如果它以可导出的名称为基础处理问题,我很高兴。GHC 有处理未导出的未使用代码的警告。任何特定于该任务的工具都会引起人们的兴趣。

但是,我对一个全面的交叉引用工具很好奇。我可以使用这样的工具找到未使用的代码。几年前,当我在使用 C 和汇编程序时,我发现一个好的外部参照是一个非常方便的工具,可用于许多不同的目的。

我用谷歌搜索无处可去。显然,在 Haskell 中,交叉引用的主要含义是在文学编程中。虽然可能会有一些有用的东西。