Static call vs. Singleton call
Kommentare

Doru Moisa arbeitet seit geraumer Zeit mit dem symfony-Framework. Dabei ist ihm aufgefallen, dass symfony – wie viele andere Frameworks auch
– regen Gebrauch des Singleton-Entwurfmusters macht.

Doru Moisa arbeitet seit geraumer Zeit mit dem symfony-Framework. Dabei ist ihm aufgefallen, dass symfony – wie viele andere Frameworks auch – regen Gebrauch des Singleton-Entwurfmusters macht. Das hat ein paar Fragen aufgeworfen .

Da Doru der Meinung ist, dass man in mehr als 50 % der Fälle auch mit einer Statischen Klasse auskommen könnte, hat er angefangen, sich Gedanken über die Performance zu machen. Was lag also näher, als sich ein Testskript zu schreiben und statische Calls gegen Singleton Calls antreten zu lassen?

Performance-VergleichDie Ergebnisse dürften kaum überraschen, aber jetzt hat man harte Fakten. Einzig der enorme Performancevorteil bei relativ wenigen Wiederholungen dürfte überraschen. Sein Fazit daher:

It may not be that obvious that making extensive use of Singletons has this kind of side effect; however, if your code has more that 100 or 1,000 calls to some getInstance() method of a Singleton class, you might want to consider caching the reference to the object it returns, or even refactoring the code to use only static method calls.Doru Moisa, 2010

In einem zweiten Durchgang hat Doru denselben Code übrigens mit Facebooks HipHop getestet, mit einem spektakulären Ergebnis: HPHP is ~ 200 times faster.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -