Warum wird mein CartProcessor so häufig aufgerufen?

Ich habe eine CartProcessor Klasse geschrieben, die von CartProcessorInterface und CartDataCollectorInterface extended.

Mein CartProcessor macht recht viele notwendige Datenbankaufrufe in der process() Methode und ist generell mit viel Logik versehen.

Ich verstehe, dass man seine CartProcessor so schlank wie möglich halten sollte, das ist bei mir aber nicht möglich.

Lokal läuft der Code aber innerhalb von ca. 1 sek durch und der Warenkorb wird mir angezeigt. Sobald ich den CartProcessor jetzt aber auf unser Livesystem aufspielen will dauert es bis zu 12 sek um den Warenkorb anzuzeigen. Jetzt habe ich mir mal in den Logs ausgeben lassen, wann die process() Methode denn aufgerufen wird und sehe, dass diese pro Seitenaufruf in der Storefront bis zu 10! mal durchläuft.

Was kann ich tun, damit der CartProcessor nur einmal pro Seitenaufruf ausgeführt wird und was sorgt dafür, dass dies mehrmals geschieht?