我很想知道是否已经存在一种将 java 方法代码作为输入并确定此类代码的成本函数(循环次数、ifs/elses、I/O 和其他常见事物)的方法。 我的意思不是以毫秒为单位的确切成本,而是这段代码可能导致的一些一般成本。 问题是我希望能够针对用户编写的任意方法说出这种方法的成本(当然不考虑 JVM 等一些特殊性)。
最佳答案
我不知道是否存在这样的工具,但我怀疑它的可行性和可用性:
要了解此类工具在一般情况下的可行性,请查看 Halting problem ,这是您所要求的重要组成部分,并且已被证明是 undecidable .
对于此类工具的可用性,我认为静态代码分析本身是无用的,因为系统性能的很大一部分取决于其使用模式,即在其输入上。
即使在运行时 对系统进行基准测试也不是直截了当的,这是有原因的;同样的软件在某些情况下可能快得惊人,而在其他情况下可能慢得惊人。
也就是说,有several tools for code complexity analysis ,但这些指标侧重于结构复杂性,这更多地与质量和可维护性相关,而不是性能。
关于java - 有没有办法确定任意 java 方法的一般成本函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11995996/