-
Notifications
You must be signed in to change notification settings - Fork 76
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Native agent adds 10x startup time to Spring Boot app #227
Comments
I'm happy to contribute more here, any hints on what path to go down for this? |
@phillipuniverse have you still been seeing this issue? |
@alif my guess is yes. However I can't build the latest version of the native agent. I'm using an M1 mac and this cargo:
Going to failure``` Compiling pretty_env_logger v0.2.5 Compiling rollbar-java-agent v0.1.0 (/Users/phillip/rollbar-java/native-agent) error: this file contains an unclosed delimiter --> /Users/phillip/rollbar-java/native-agent/target/release/build/rollbar-java-agent-dd71d7539b1ccf95/out/jvmti_bindings.rs:108:372066 | 108 | ...um_(unnamed_at_//opt/homebrew/Cellar/openjdk/21_0_3/libexec/openjdk_jdk/Contents/Home/include/jvmti_h_39_1)_JVMTI_VERSION_1 : enum_(unnamed_at_//opt/homebrew/Cellar/openjdk/21_0_3/libexec/openjdk_jdk/Contents/Home/include/jvmti_h_39_1) = 805371904 ; pub const enum_(unnamed_at_//opt/homebrew/Cellar/openjdk/21_0_3/libexec/openjdk_jdk/Contents/Home/include/jvmti_h_39_1)_JVMTI_VERSION_1_0 : enum_(unnamed_at_//opt/homebrew/Cellar/openjdk/21_0_3/libexec/openjdk_jdk/Contents/Home/include/jvmti_h_39_1) = 805371904 ; pub const enum_(unnamed_at_//opt/homebrew/Cellar/openjdk/21_0_3/libexec/openjdk_jdk/Contents/Home/include/jvmti_h_39_1)_JVMTI_VERSION_1_1 : enum_(unnamed_at_//opt/homebrew/Cellar/openjdk/21_0_3/libexec/openjdk_jdk/Contents/Home/include/jvmti_h_39_1) = 805372160 ; pub const enum_(unnamed_at_//opt/homebrew/Cellar/openjdk/21_0_3/libexec/openjdk_jdk/Contents/Home/include/jvmti_h_39_1)_JVMTI_VERSION_1_2 : enum_(unnamed_at_//opt/homebrew/Cellar/openjdk/21_0_3/libexec/openjdk_jdk/Contents/Home/include/jvmti_h_39_1) = 805372416 ; pub const enum_(unnamed_at_//opt/homebrew/Cellar/openjdk/21_0_3/libexec/openjdk_jdk/Contents/Home/include/jvmti_h_39_1)_JVMTI_VERSION_9 : enum_(unnamed_at_//opt/homebrew/Cellar/openjdk/21_0_3/libexec/openjdk_jdk/Contents/Home/include/jvmti_h_39_1) = 805896192 ; pub const enum_(unnamed_at_//opt/homebrew/Cellar/openjdk/21_0_3/libexec/openjdk_jdk/Contents/Home/include/jvmti_h_39_1)_JVMTI_VERSION_11 : enum_(unnamed_at_//opt/homebrew/Cellar/openjdk/21_0_3/libexec/openjdk_jdk/Contents/Home/include/jvmti_h_39_1) = 806027264 ; pub const enum_(unnamed_at_//opt/homebrew/Cellar/openjdk/21_0_3/libexec/openjdk_jdk/Contents/Home/include/jvmti_h_39_1)_JVMTI_VERSION_19 : enum_(unnamed_at_//opt/homebrew/Cellar/openjdk/21_0_3/libexec/openjdk_jdk/Contents/Home/include/jvmti_h_39_1) = 806551552 ; pub const enum_(unnamed_at_//opt/homebrew/Cellar/openjdk/21_0_3/libexec/openjdk_jdk/Contents/Home/include/jvmti_h_39_1)_JVMTI_VERSION_21 : enum_(unnamed_at_//opt/homebrew/Cellar/openjdk/21_0_3/libexec/openjdk_jdk/Contents/Home/include/jvmti_h_39_1) = 806682624 ; pub const enum_(unnamed_at_//opt/homebrew/Cellar/openjdk/21_0_3/libexec/openjdk_jdk/Contents/Home/include/jvmti_h_39_1)_JVMTI_VERSION : enum_(unnamed_at_//opt/homebrew/Cellar/openjdk/21_0_3/libexec/openjdk_jdk/Contents/Home/include/jvmti_h_39_1) = 806682624 ; pub type enum_(unnamed_at_//opt/homebrew/Cellar/openjdk/21_0_3/libexec/openjdk_jdk/Contents/Home/inclu ```And it doesn't seem to work with Java 21 when I run my project with Java 21 and Spring Boot 3:
There have also not been any builds of the native agent published since 1.4.1. FYI in case you want to take another look I updated my example project to Spring Boot 3. So seems like the native agent still needs a lot of work! |
I added a sample project to reproduce it at https://github.com/phillipuniverse/rollbar-native-test. Without the agent, startup time is ~2s. With the agent, startup time is ~20s. The project uses the
.dylib
and.so
files that I used to validate with, both with the same results (although Linux was slightly faster). I build the.dylib
and.so
files from the master branch just to make sure I had all the changes.In this example it isn't so bad, but it takes a different Spring Boot project (that has Spring Data, Rabbit, Mongo, JPA, etc etc) go from ~15s startup time to ~400s which makes the whole native agent a non-starter.
I will say though, once it starts up I get locals in my Rollbar traces which is why I would really like this to work!!
Might be relevant, but when I turn on debug logging with
ROLLBAR_LOG=debug
I get this:The
ThrowableCache class not found
is emitted an insane amount of times. If I were to bet, it seems to indicate that the cache is not being used by the native agent, which contributes to the super slow startup times??The text was updated successfully, but these errors were encountered: