code change · performanceAL Developmentofficial - Microsoftreviewed - checked by Opus

#12078 [29.x]Reduce allocations in the "Export to Execl" scenario (#11870)

The Export to Excel scenario now allocates significantly less memory by reusing a CellDecorator instance, eliminating redundant ExcelBuf record calculations, and reducing method call overhead during column processing.

Pull request · merged into releases/29.x (BC29) on 2026-10-07 by PhDuck · 1 file (+30 -14), 1 AL · performance · tier official · reviewed (checked by Opus)

What changed

  • Reuses the default CellDecorator instead of creating new instances for each column-row combination
  • Removes unnecessary ExcelBuf record instantiation that was only used to calculate cell format names
  • Reduces AL method call scope allocations during export processing
  • Decreases memory allocations from 168GB to 68GB for 100k G/L Entries exports
  • Reduces garbage collection pause time from 12.8 seconds to 5.7 seconds in test scenarios

AL objects touched

Context

  • Work items: AB#652103
  • Labels: Team: Integrations
  • Systems: development
  • From the description: “removes three easy allocations that was done for each column of each row”

Source: metadata of a merged pull request in microsoft/BCApps (bcapps): title, labels, changed paths and counts, with a summary in our words. No source text and no description beyond one short quote (D10, D61).