Details
Description
When serializing the DOM, ICEfaces currently builds a String internally and then writes the String to the writer. It would be more efficient (particularly on full page updates) to write the DOM directly to the writer.
Preserve the current API and pass a StringWriter to a new writeDOM() method that accepts a writer. The current implementation that makes use of stringBuffer.append() can simply be replaced with writer.write().
Issue Links
- blocks
-
ICE-3082 CPU performance/efficiency
- Closed
Activity
Ted Goddard
created issue -
Mircea Toma
made changes -
Field | Original Value | New Value |
---|---|---|
Assignee | Mircea Toma [ mircea.toma ] |
Mircea Toma
made changes -
Fix Version/s | 1.7.2 [ 10130 ] |
Repository | Revision | Date | User | Message |
ICEsoft Public SVN Repository | #17303 | Thu Aug 07 04:08:48 MDT 2008 | mircea.toma | |
Files Changed | ||||
MODIFY
/icefaces/branches/icefaces-1.7/icefaces/core/src/com/icesoft/faces/util/DOMUtils.java
MODIFY /icefaces/branches/icefaces-1.7/icefaces/core/src/com/icesoft/faces/context/NormalModeSerializer.java |
Repository | Revision | Date | User | Message |
ICEsoft Public SVN Repository | #17304 | Thu Aug 07 04:09:02 MDT 2008 | mircea.toma | |
Files Changed | ||||
MODIFY
/icefaces/trunk/icefaces/core/src/com/icesoft/faces/context/NormalModeSerializer.java
MODIFY /icefaces/trunk/icefaces/core/src/com/icesoft/faces/util/DOMUtils.java |
Mircea Toma
made changes -
Status | Open [ 1 ] | Resolved [ 5 ] |
Resolution | Fixed [ 1 ] |
Ken Fyten
made changes -
Fix Version/s | 1.7.2RC1 [ 10140 ] | |
Fix Version/s | 1.7.2 [ 10130 ] |
Ken Fyten
made changes -
Fix Version/s | 1.8DR#1 [ 10141 ] | |
Fix Version/s | 1.7.2RC1 [ 10140 ] |
Ken Fyten
made changes -
Fix Version/s | 1.8 [ 10161 ] |
Ken Fyten
made changes -
Status | Resolved [ 5 ] | Closed [ 6 ] |
Assignee | Mircea Toma [ mircea.toma ] |
Incremental updates can also make use of the writer directly if the methods:
writeChildren(Writer writer, Node node)
writeNode(Writer writer, Node node)
are implemented (writeNode() is already necessary for the implementation of writeDOM).
The efficiency gain in this approach is largely from the fact that the memory consumption is bounded. In some cases, pooled strings will be passed to the writer directly and need not be copied into memory (buffering will result in copying, however).