2012-12-04 10 views
6

Nie mogę uwierzyć, że nie jestem w stanie odpowiedzieć na to, co dotyczy tego pytania, ale w każdym razie ...Czy wykonywanie PHP jest szybsze przy ścisłych standardach?

Moje logiczne założenie polegałoby na tym, że skrypty spełniające wszystkie zasady, których wymagają rygorystyczne normy, byłyby wykonywane szybciej.

Z drugiej strony, jeśli skrypty działać bez ścisłych norm, to może surowe normy jest po prostu niepotrzebny dodatkowy etap weryfikacji w procesie kompilacji ...

Czy jest jakaś oficjalna informacja o tym, co jest szybsze? Dzięki.

+1

Twoje założenie jest poprawne w stosunku do ścisłego kodu (w przypadku niektórych definicji "ścisłych") * może * być wykonywane szybciej - patrz np. [HipHop] (https://en.wikipedia.org/wiki/HipHop_for_PHP). Ale myślę, że nie jest to robione w oficjalnym tłumaczu PHP. Facebook pracuje jednak nad maszyną wirtualną, która dokładnie to robi. –

+2

Optymalizacja mikro jest źródłem wszelkiego zła. Jednak surowe standardy mówią, że prawdopodobnie będziesz miał mniej problemów w dłuższej perspektywie. @KonradRudolph Przypuszczam, że mówi o własnoręcznych notatkach PHP 'E_STRICT' – KingCrunch

+2

@King Nieodpowiednie cytaty są źródłem wszelkiego zła. OP nie mówi o niepotrzebnych mikrooptymalizacjach. –

Odpowiedz

6

To powinno być szybciej ..

Prosty Powodem jest to, że układ wyzwalania błąd PHP jest dość ciężki, a nawet jeśli błędy E_STRICT są tłumione, nadal wprowadzić mechanizm błędu (tylko być ignorowane).

Ale w rzeczywistości bardzo zależy od sytuacji, ponieważ mogłem sobie wyobrazić, że praca wokół E_STRICT może sama w sobie być cięższa niż oryginalne rozwiązanie.

Bez względu na to, używanie E_STRICT to sprytny pomysł i pozwala na bardziej przenośny, przyszłościowy kod. Jednak nie użyłbym wydajności jako uzasadnionego powodu do rozpoczęcia pisania ścisłego kodu PHP.

+0

+1 Dokładnie, każdy błąd, który zostałby wygenerowany (nawet jeśli masz "error_reporting (0)") ma negatywny wpływ na wydajność, ponieważ nadal są generowane, nawet jeśli nie są zgłaszane. To z kolei powoduje, że program wykona dodatkowe czynności wykonawcze. – Leigh

Powiązane problemy