Hi BCEL developers,

We use BCEL library to inspect Java class. Thank you for the great library.

When our tool checks classes in ~200 jar files, it creates more than 2
million BCEL ConstantUtf8 instances. I suspect many of them share the same
values such as "java.lang.String".

[image: many_constant_utf8.png]

Given this observation, I got an idea to to reuse ConstantUtf8 with same
value to save memory footprint. Because ConstantUtf8 is constant, sharing
the instances across classes should not cause a problem. Note that BCEL is
not designed thread-safe (doc
<https://commons.apache.org/proper/commons-bcel/faq.html>).

If this is a good idea, I'm thinking to make a pull request around BCEL's
ConstantUtf8.getInstance method:
https://github.com/apache/commons-bcel/blob/master/src/main/java/org/apache/bcel/classfile/ConstantUtf8.java#L116

Does anybody have any thought?

-- 
Regards,
Tomo

Reply via email to