<Swing Dev> Extension method for AbstractDocument.Content?

Alexander Scherbatiy alexandr.scherbatiy at oracle.com
Tue Jul 10 12:11:54 UTC 2012


Hi Paulo,

On 6/21/2012 8:56 AM, Paulo Levi wrote:
> Hi. I've noticed that DefaultStyledDocument has a slowness issue when 
> inserting text. Even if you subclass it and expose the faster method:
> protected void insert(int offset, ElementSpec[] data)

    Before fixing the performance issue it usually needs to have some 
performance statistics, like:
     - What is the difference between time execution or memory usage for 
code with the fix and without the fix for text with different length
     - Text with which length is commonly used in this method
     - How often this method is used in real cases
     - Is the most performance degradation is localized in this method 
or may be where are other narrow places  which have performance issues 
during a text manipulation

   Thanks,
   Alexandr.



>
> the body of the method still uses a stringbuilder to append all char[] 
> inside of the data before actually inserting into the content.
>
> This is because the only method for insertion in the default content 
> interface is:
> public UndoableEdit insertString(int where, String str)
>
> Now if there are going to be extension methods in java 8, it would be 
> nice to have a
> public UndoableEdit insert(int where, int index, int length, char[] 
> str) default {
>    return insert(where, new String(index, length, str);
> }
>
> with a adequate specialization in GapContent (that obviously doesn't 
> call the string version), and that that new method is used in the
> protected void insert(int offset, ElementSpec[] data)
> method (and where it makes sense)





More information about the swing-dev mailing list