Я немного опоздал с этим разговором, но, только что найдя вопрос, я решил, что брошу свои мысли на ринг для моего первого сообщения в SO.
В качестве быстрого эксперимента (после прочтения статьи, на которую ссылается zolex) я добавил третий тестовый пример к тестам, указанным в статье:
$inst = TestSingleton::getInstance();
for($i=0;$i<$runs;$i++) $inst->test();
Конечно, результаты не были на 100% согласованными, но я обнаружил, что в большинстве случаев при выполнении 500 000 вызовов всеми тремя методами вышеуказанный метод выполнялся на 2-3 секунды быстрее, чем любой из двух других.
Хотя я всегда передергиваю, когда вижу цитату о «преждевременной оптимизации», в данном случае я думаю, что она попадает в самую точку. Разница в производительности в лучшем случае минимальна и обычно свидетельствует в пользу более разумного использования singleton.
person
AndyM84
schedule
14.01.2011