问题我有一个遗留代码库,我需要分析和确定依赖性。特别是对类(内部/外部)和扩展(Memcache、PDO等)的依赖。我尝试过的我已经查看了IsthereastaticcodeanalyzerforPHPfiles?中列出的工具.不幸的是,这篇文章已经过时,而且大多数有前途的工具都像phpCallGraph不再工作。我的想法是按词法分析代码并查找类标记。查看这些列表至少可以让我直观地确定依赖性。但是,在以下代码中查找OtherClass可能很复杂:$classname='OtherClass';echo$classname::doubleColon();最后,我怀疑我是第一个需要这个的人
关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭7年前。Improvethisquestion有哪些适用于Java的端到端CPU性能分析器?我正在寻找的东西的快速列表:离线分析-程序执行期间不需要用户交互或GUI。将配置文件数据转储到一个文件中,然后需要使用GUI查看就可以了,我只是不想在作业运行时不得不照看它端到端记录-Profiler应该能够在输入J2SE应用程序的主调用后立即开始记录。它应该在JVM退出之前立即停止记录。调用图生成-分析后,最好将数据转换
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。我正在寻找有关将哪种分析器用于具有多种语言文档的索引的反馈。目前我正在使用simpleanalyzer,因为它似乎可以处理最广泛的语言。大多数被索引的文件都是英文的,但偶尔也会有双字节语言被索引。是否还有其他建议,或者我应该坚持使用simpleanalyzer。谢谢
我正在为垃圾优先收集器寻找GC日志分析器。很多人都提到过“IBM模式建模和分析工具,用于Java垃圾收集器(PMAT)”,但它似乎与OracleJDK7的G1不兼容。任何人都可以分享您使用哪些工具以图形方式分析gc日志。 最佳答案 尝试GCViewer.GitHub上的分支包括对更新的垃圾收集器(包括G1)的支持。 关于java-G1垃圾收集器日志分析器,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com
我在新代码库中出现了很多次,其中有一系列方法调用,例如,objecto=something.foo();bar(o);something.foobar();在连续的行中。我想在我的代码中查找/计算这样一个序列的总数,其中对象“某物”的名称可能不同,但我希望得到相同的对待。我想将它们作为一种方法提取出来,并查看所有需要重构的位置。我该如何着手做这样的事情? 最佳答案 IntellijIDEA(包括免费社区版)进行重复代码检测和替换。如果您使用其重构功能将其中一个事件分割成一个方法,它会遍历代码库并询问您是否也想在其他地方替换它。
这可能看起来像一个愚蠢的问题,但在问了一些关于stackoverflow的问题并查看了其他人的问题之后,经常出现的一件事是使用分析器来查看代码的哪一部分运行缓慢,等等。作为一名编程初学者,我对所有这些都是新手,但由于我正在创建越来越大的项目,我觉得这样的工具有时会非常有用。唯一的问题是,我不知道如何使用它们。通常,我使用JDeveloper编写Java代码,我在Internet上看到有一个内置的。我试过使用它,但我想我真的不知道该怎么做,因为我找不到让我的程序变慢的部分。我不知道是因为我不知道如何使用它,还是因为它以不好而闻名,所以我想我会在这里问一下,看看我应该从哪一个开始。我也安装
关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭7年前。Improvethisquestion你知道一些好的线程转储分析器工具吗?完美的是:免费可以阅读一些线程转储并进行比较指出哪些线程花费的时间最长,线程被锁定在哪些类上等。显示线程、锁、死锁和等待获取单个锁的多个线程编辑:离线分析-使用一个或多个线程转储加载文件并对其进行分析。编辑:我的选择是:武士。它具有我需要的所有功能:加载日志文件,并比较几个线程转储。分析一下并指出:等待线程阻塞线程阻塞线程僵局我会将
我试图调查java.lang.OutOfMemoryError:GClimitexceeded这发生在我们部署在tomcat中的网络应用程序的高负载时。堆大小设置为8GB(-Xms2048m-Xmx8192m)在某个时间点,由于GCActivity开销,我们的应用程序变得无响应。我可以在日志中看到FullGC连续发生了多次。所以我使用以下命令(jmap-F-dump:format=b,file=/root/dump2.hprof4963)进行了堆转储。包含转储的文件大小为9GB。在进行转储后(应用程序被卡住了大约45分钟),发生了多次完整的GC,直到抛出OutOfMemoryError
1。关于PMD:1.1如何设置PMD检查,以忽略其中的一些检查,例如“变量名太短或太长”、“删除空构造函数等”——如果我这样做,会出现另一个警告说该类必须有一些静态方法。基本上,这个类是空的,供以后开发使用,我想暂时保留它。1.2是否有必要遵循这个警告建议?Aclasswhichonlyhasprivateconstructorsshouldbefinal1.3这是什么意思?Theclass'Dog'hasaCyclomaticComplexityof3(Highest=17)1.4这个呢?我很想改变这一点,但目前我没有想到任何关于改变的事情:AssigninganObjecttonu
我正在尝试在满足某些运行时条件时有选择地监视/分析Java应用程序。我已经能够使用HotSpotDiagnosticMXBean即时转储堆,这非常有用。我现在正尝试做一些与CPU分析类似的事情,希望更有效地针对特定的代码路径。我对命令行有一些经验HPROFinterface和NetBeans分析器,但都需要事先启动。有没有办法从正在运行的应用程序中以编程方式激活HPROF分析器?最好是允许我随意启动和停止分析过程的东西? 最佳答案 根据JVMTIdocumentation,像hprof这样的本地代理库必须在JVM初始化期间很早就加载