The heuristic for sharing String data in String.substring() can result in
significant memory bloat in certain cases. 

Currently, it will always share String data unless the resulting substring is <=
8 characters in size. In many applications, it seems common for the initial
string to be discarded once a substring has been taken - thus it probably makes
sense to share only when the substring represents a significant proportion of
the original string's size.

See this thread for more information:

http://gcc.gnu.org/ml/java-patches/2005-q2/msg00449.html

-- 
           Summary: String.substring sharing heuristic should be improved
           Product: gcc
           Version: 4.1.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: libgcj
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: mckinlay at redhat dot com
                CC: gcc-bugs at gcc dot gnu dot org,java-prs at gcc dot gnu
                    dot org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21753

Reply via email to