Java Code Examples for com.sun.org.apache.xml.internal.utils.FastStringBuffer

Following code examples demonstrate how to use com.sun.org.apache.xml.internal.utils.FastStringBufferfrom java. These examples are extracted from various highly rated open source projects. You can directly use these code snippets or view their entire linked source code. These snippets are extracted to provide contextual information about how to use this class in the real world. These samples also let you understand some good practices on how to use com.sun.org.apache.xml.internal.utils.FastStringBufferand various code implementation of this class.

  
  public FastStringBuffer fsb()
  {
  } 


    public static void main(String[] args) {
        StringBuffer stringBuffer = new StringBuffer();
        StringBuilder stringBuilder = new StringBuilder();

        stringBuffer.append("aaaaa");
        stringBuilder.append("aaaaaa");

        StringBufferPool.free(new FastStringBuffer());
        StringBufferPool bufferPool = new StringBufferPool();


    } 

Advertisement
Javadoc
Bare-bones, unsafe, fast string buffer. No thread-safety, no parameter range checking, exposed field

s. Note that in typical applications, thread-safety of a StringBuffer is a somewhat dubious concept in any case.

Note that Stree and DTM used a single FastStringBuffer as a string pool, by recording start and length indices within this single buffer. This minimizes heap overhead, but of course requires more work when retrieving the data.

FastStringBuffer operates as a "chunked buffer". Doing so reduces the need to recopy existing information when an append exceeds the space available; we just allocate another chunk and flow across to it. (The array of chunks may need to grow, admittedly, but that's a much smaller object.) Some excess recopying may arise when we extract Strings which cross chunk boundaries; larger chunks make that less frequent.

The size values are parameterized, to allow tuning this code. In theory, Result Tree Fragments might want to be tuned differently from the main document's text.

%REVIEW% An experiment in self-tuning is included in the code (using nested FastStringBuffers to achieve variation in chunk sizes), but this implementation has proven to be problematic when data may be being copied from the FSB into itself. We should either re-architect that to make this safe (if possible) or remove that code and clean up for performance/maintainability reasons.

Read More
Advertisement