Cache results of DecimalFormat from DataFormatter

XMLWordPrintable

    • Type: Improvement
    • Resolution: Fixed
    • Priority: Major
    • 6.2.0
    • Affects Version/s: 5.12.2
    • Component/s: None
    • Security Level: Jimmy
    • None

      On some sheets, DataFormatter instantiates a large number of DecimalFormat
      See expended time in trace below:

      100.0% - 605 ms io.keikai.range.impl.RangeImpl.getCellFormatText
      99.0% - 599 ms io.keikai.model.util.ReadWriteTask.doInReadLock
      99.0% - 599 ms io.keikai.range.impl.RangeImpl$CellVisitorTask.invoke
      99.0% - 599 ms io.keikai.range.impl.RangeImpl.travelCells
      99.0% - 599 ms io.keikai.range.impl.RangeImpl$40.visit
      98.1% - 594 ms io.keikai.model.impl.sys.FormatEngineImpl.format
      91.5% - 554 ms io.keikai.model.impl.sys.FormatEngineImpl.format0
      84.1% - 509 ms org.zkoss.poi.ss.usermodel.DataFormatter.getJavaFormat
      54.7% - 331 ms org.zkoss.poi.ss.usermodel.DataFormatter.<init>
      54.7% - 331 ms org.zkoss.poi.ss.usermodel.DataFormatter.<init>
      52.8% - 320 ms java.text.DecimalFormat.<init>

      Since instantiating DecimalFormat is expensive, it would be better to reuse instances if possible.

            Assignee:
            jamson
            Reporter:
            MDuchemin
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: