问题标签 [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 应用程序的性能吗?
我刚刚为 Eclipse安装了Unnecessary Code Detector并在我的项目中运行它。我看到很多所谓的“死代码”。尽管从组织的角度来看,删除死/不必要的代码是有意义的,但它让我思考:
死代码真的会阻碍 Java 应用程序的性能吗?!?!
对我来说,如果代码真的“死”了,它永远不会被执行,所以我看不出删除它(再次,除了组织/内务/代码清理目的)如何提高性能。
opengl - GLSL:删除死代码会导致视觉错误
在尝试在 opengl 着色器中编写光线跟踪器时,我遇到了很多奇怪的问题。我试图确定错误的来源是否是我自己,通常情况就是这样,但我得出的结论是,其中一些问题可能只是我的图形驱动程序中的错误(我在 ATI 上)。在这些情况下,我刚刚实施了解决方法。
但我只是遇到了一些我不确定如何解决的问题(至少没有真正奇怪的代码),事实上我无法将我的一些数据从统一数组切换到纹理缓冲区,因为我删除的那一刻对统一数组的引用(它不再做任何事情;我已经删除了数据的任何实际使用),我的着色器看起来像这样:
对此:
请注意,移动相机也会导致您看到的内容发生不规律的变化。
这是我要更改以获得这些结果的方法:(有问题的行已被注释掉,它们访问统一数组 quad_vertex_indices)
}
在我看来,这只是一个编译器问题,但如果不是,那就太好了,因为这意味着我可以修复它。
有谁知道这可能是什么原因,我的选择是什么?我受到时间限制,所以我正在考虑只是做一个黑客来让它工作(即只留下线条,或类似的东西)
javascript - ClosureCompiler 通过高级优化删除死代码
以下代码:
withADVANCED_OPTIMIZATIONS
编译为:
但是这段代码:
编译为:
为什么它不能忽略hello.a = 5
?
(它不能在上下文之外使用,没有eval
, no[]
和 no new Function()
。)
javascript - 如何使闭包编译器在大型项目中通过高级优化删除所有死代码?
以下代码:
由 Closure 编译器对此进行了优化:
(它留下了死代码。)
但是,如果我删除最后一行(仅重复调用 24 次),它会删除死代码。结果是空的。
如何强制 Closure 编译器在大型项目中也删除所有死代码?
asp.net - 我需要一种从 ASP.NET 2.0-4.0 站点中删除“死页”的方法
我在一家公司接手了大约 30 个项目。多年来,运行事物的人直接在服务器上工作。有大量死页会导致 Visual Studio 崩溃。
我有 JetBrains Resharper(最新),还有 Telerik Full Suite 及其所有工具。
我怎样才能剔除这些死页,是否有一些自动化的方法可以清除这些废话并构建这些东西?这些站点的范围从 Windows 2003 和 IIS 到带有 IIS 的 Windows 2008。
当我们去构建时,我们会得到 4100 个错误,这相当多,只是要找出来。
我喜欢一些想法、技术、工具等……这可能有助于完成这项任务。
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() 是有意义的。
运行整个代码的任何想法/工具?
我认为的一种方法是修改 main 函数,如下所示:
这样它就可以通过原始代码运行。知道如何进行这种类型的修改吗?
java - javac代码消除能力
我很难找到有关javac
的代码消除功能的信息:
我读到,如果您有类似以下内容,则if
- 语句将被消除:
但是这个怎么样,例如:
或这个:
由于分析程序以找到所有死代码(可能类似于停止问题)非常困难/不可能,我想只有少数定义明确的构造(如上面的第一个示例),它们javac
将识别并删除可靠。是否有这些构造的完整列表?
haskell - 死代码和/或如何从 Haskell 源代码生成交叉引用
我的代码库中有一些未使用的功能,但很难识别。随着我探索其问题空间和可能的解决方案,代码在去年发生了变化。我需要做的是找到未使用的代码,这样我就可以摆脱它。如果它以可导出的名称为基础处理问题,我很高兴。GHC 有处理未导出的未使用代码的警告。任何特定于该任务的工具都会引起人们的兴趣。
但是,我对一个全面的交叉引用工具很好奇。我可以使用这样的工具找到未使用的代码。几年前,当我在使用 C 和汇编程序时,我发现一个好的外部参照是一个非常方便的工具,可用于许多不同的目的。
我用谷歌搜索无处可去。显然,在 Haskell 中,交叉引用的主要含义是在文学编程中。虽然可能会有一些有用的东西。