java - 有没有办法确定任意 java 方法的一般成本函数?

标签 java

我很想知道是否已经存在一种将 java 方法代码作为输入并确定此类代码的成本函数(循环次数、ifs/elses、I/O 和其他常见事物)的方法。 我的意思不是以毫秒为单位的确切成本,而是这段代码可能导致的一些一般成本。 问题是我希望能够针对用户编写的任意方法说出这种方法的成本(当然不考虑 JVM 等一些特殊性)。

最佳答案

我不知道是否存在这样的工具,但我怀疑它的可行性和可用性:

  • 要了解此类工具在一般情况下的可行性,请查看 Halting problem ,这是您所要求的重要组成部分,并且已被证明是 undecidable .

  • 对于此类工具的可用性,我认为静态代码分析本身是无用的,因为系统性能的很大一部分取决于其使用模式,即在其输入上。

    即使在运行时 对系统进行基准测试也不是直截了当的,这是有原因的;同样的软件在某些情况下可能快得惊人,而在其他情况下可能慢得惊人。

也就是说,有several tools for code complexity analysis ,但这些指标侧重于结构复杂性,这更多地与质量和可维护性相关,而不是性能。

关于java - 有没有办法确定任意 java 方法的一般成本函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11995996/

相关文章:

java - libgdx 无边框全屏

java - 在 SAP 中创建采购信息记录

java - 使用 Apache POI 获取行数

java - Android - 返回时 ListView 为空

java - Parse + Robolectric 导致 java.lang.VerifyError : Bad type on operand stack

java - JavaFX GUI 是否对性能影响很大?

java - 通过 wifi 连接服务器和客户端套接字

java - 使主要接受字符串以外的对象?

java - 用java代码下载真的很慢

java - 无论应用程序处于什么状态,都获取设备的位置始终从我的公司应用程序中检测位置