question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Performance issues

See original GitHub issue

Hi, as we are stuck with Java 8 my team has found your project very interesting. We’ve already tried Jabel on local envs and results were very promising. Although Java 8+ features, debugging and stack traces were fine there’s an issue we face: performance. Our project is a modular monolith. Complication time (pure javac) jumped from 3 minutes to about 40 minutes. We did instrumentation with JProfiler and although execution times are inflated than with regular sampling, but it’s all about the number of calls. We think the source of the problem is in make() method invocation.

visitors.forEach((className, visitor) -> {
    byteBuddy
            .redefine(
                    typePool.describe(className).resolve(),
                    classFileLocator
            )
            .visit(visitor)
            .make()
            .load(classLoader, ClassReloadingStrategy.fromInstalledAgent());
});

Do you have any tips to improve performance? We suspect that Jabel is also compiling third-party libraries of our project. Maybe there would be an option to add exclusions for such libraries? Or maybe the problem is in the byte-buddy library and library with better performance is worth considering? Thanks!

Zrzut ekranu 2021-09-7 o 11 45 44 Zrzut ekranu 2021-09-7 o 11 38 55 Zrzut ekranu 2021-09-7 o 11 48 47

Issue Analytics

  • State:closed
  • Created 2 years ago
  • Comments:11 (6 by maintainers)

github_iconTop GitHub Comments

1reaction
raphwcommented, Sep 7, 2021

No, decorate should allow exactly that. Decorate byte code but without resolving the hierarchy of super classes. I never heard of individual builds failing. I run Byte Buddy on adopt, there’s plenty of tests around this and they don’t fail. Is this still happening?

1reaction
raphwcommented, Sep 7, 2021

Hierarchy resolution is expensive as it is complex. Since you are only decorating and not overriding methods, consider using decorate and not redefine snd use MethodGraph.Compiler.ForDeclaredMethods.INSTANCE in the ByteBuddy configuration.

Read more comments on GitHub >

github_iconTop Results From Across the Web

Dealing with Performance Problems
Types of Performance Problems ; Quantity of work (untimely completion, limited production). Poor prioritizing, timing, scheduling; Lost time ; Quality of work ( ......
Read more >
Handling Performance Issues With Grace | Monster.com
Low Productivity or Late Completion – Make sure you've been clear about the requirements and expectations of the job. · Poor Quality of...
Read more >
Top 5 Common Performance Problems - HRCI
Top 5 Common Performance Problems · Shallow Work · Inability to Prioritize · False Sense of Urgency · Productive Procrastination · Low-Quality Output....
Read more >
68 Examples of Performance Problems - Simplicable Guide
Overreaction to Criticism, Passive Aggressive Behavior ; Poor Attention to Detail, Poor Budget Control ; Poor Listening Habits, Poor Work Quality.
Read more >
5 Common Reasons for Performance Issues (Plus 3 Tips to ...
Most Common Causes of Performance Issues · 1. They lack knowledge or skill. · 2. They have unclear or unrealistic expectations. · 3....
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found