You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@poi.apache.org by bu...@apache.org on 2013/08/12 23:17:09 UTC

[Bug 54593] Poor performance when adding borders

https://issues.apache.org/bugzilla/show_bug.cgi?id=54593

--- Comment #5 from Dominik Stadler <do...@gmx.at> ---
Created attachment 30723
  --> https://issues.apache.org/bugzilla/attachment.cgi?id=30723&action=edit
Initial try of caching the toString() result

I gave it a try and implemented caching of the toString() value in
XSSFCellBorder and compared elapsed times, below are the raw results, patch is
attached. It improves a lot, but there is still a chance that the changes break
stuff as there is a getBorder() method which is used elsewhere and could modify
the contents of the border whereas the borderStr might be kept, so this mostly
shows the potential of doing toString() differently here, however I still think
the base implementation is not optimal by causing a lot of stuff in toString()
including synchronization, the same might be the case in many other types that
derive from XmlObjectBase as well...

Before:

fileName = /tmp/01.xlsx, doBorders = false
  elapsed bordering: 0
  styles count: 4
  elapsed total: 531
fileName = /tmp/02.xlsx, doBorders = true
  elapsed bordering: 3424
  styles count: 68
  elapsed total: 3699
fileName = /tmp/01.xlsx, doBorders = false
  elapsed bordering: 0
  styles count: 4
  elapsed total: 73
fileName = /tmp/02.xlsx, doBorders = true
  elapsed bordering: 2181
  styles count: 68
  elapsed total: 2300
fileName = /tmp/03.xlsx, doBorders = false
  elapsed bordering: 0
  styles count: 4
  elapsed total: 73
fileName = /tmp/04.xlsx, doBorders = true
  elapsed bordering: 1819
  styles count: 68
  elapsed total: 1902

After:

fileName = /tmp/01.xlsx, doBorders = false
  elapsed bordering: 0
  styles count: 4
  elapsed total: 269
fileName = /tmp/02.xlsx, doBorders = true
  elapsed bordering: 1580
  styles count: 68
  elapsed total: 1856
fileName = /tmp/01.xlsx, doBorders = false
  elapsed bordering: 0
  styles count: 4
  elapsed total: 193
fileName = /tmp/02.xlsx, doBorders = true
  elapsed bordering: 643
  styles count: 68
  elapsed total: 770
fileName = /tmp/03.xlsx, doBorders = false
  elapsed bordering: 0
  styles count: 4
  elapsed total: 55
fileName = /tmp/04.xlsx, doBorders = true
  elapsed bordering: 424
  styles count: 68
  elapsed total: 532

-- 
You are receiving this mail because:
You are the assignee for the bug.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@poi.apache.org
For additional commands, e-mail: dev-help@poi.apache.org