Mar*_*eon 20 java debugging jboss intellij-idea
通过调试器运行时,一些CPU密集型例程会显着变慢.为什么是这样?
目前我只是使用IntelliJ来逐步运行在JBoss中运行的代码.当我启动JBoss时,我使用以下选项:
set JAVA_OPTS=-Xms512m -Xmx1024m -XX:MaxPermSize=256m -Xdebug -Xrunjdwp:transport=dt_socket,address=5005,server=y,suspend=n %JAVA_OPTS%
Run Code Online (Sandbox Code Playgroud)
有没有办法加快执行速度?或者加速我不需要介入的某些方法执行?
更新:似乎我没有跨越/进入CPU密集型例程(即:只运行直到例程之后设置的断点),然后执行时间就好像不在调试器中.
Ano*_*on. 42
通过调试器运行时,一些CPU密集型例程会显着变慢.为什么是这样?
因为启用调试时,JITter不会优化代码(通常,根本不会).
它还取决于"断点式".例如,在变量上设置观察点或在接口级别上设置断点(调试器将在执行时停止在所有方法实现上),这通常会大大减慢处理时间.
调试时,除运行应用程序外,还运行调试器.
代码在调试模式下编译,包含有关局部变量和其他源级信息的元数据符号.调试器读取以知道哪一行源代码与当前指令相对应.该过程称为符号调试.存储的符号会增加代码大小并解释它们会增加执行时间.
有些调试器实际上会动态解释代码,这几乎总是一个主要的性能损失.
有关Java的调试编译模式的更多信息,该模式由类文件执行javac并包含调试信息:Java语言编译器选项.例如:-g生成所有调试信息,包括局部变量.
| 归档时间: |
|
| 查看次数: |
11650 次 |
| 最近记录: |