Skip to content

Performance: ColumnBuilder herbouwt kolommen bij elke datatable request #131

Description

@ginkelsoft-development

Probleem

ColumnBuilder roept defineFields() aan bij elke datatable AJAX request om de kolomdefinities op te bouwen. Field-definities zijn deterministisch en veranderen niet tussen requests.

Impact: alle Field-objecten worden bij elke request opnieuw geïnstantieerd (~23 fields × N resources). Onnodige object-instantiatie en eventuele trait-initialisatie.

Fix

Eenvoudige in-memory cache per resource-class:

private static array \$columnCache = [];

public function build(string \$resourceClass): array
{
    return self::\$columnCache[\$resourceClass] ??= \$this->doBuild(\$resourceClass);
}

Cache is per process, geen invalidatie nodig — kolomdefinities zijn statisch tot deploy.

Acceptatiecriteria

  • In-memory cache geïmplementeerd
  • Test: tweede build() call met zelfde resource roept defineFields() niet opnieuw aan
  • Benchmark: 1000 sequentiële datatable requests — meet tijdwinst

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions