Porównanie prędkości - proceduralne kontra OO w językach interpretowanych

głosy
17

W interpretowanych języków programowania, takich jak PHP i JavaScript, jakie są następstwa dzieje z podejścia obiektowego nad proceduralnego podejścia?

Konkretnie co szukam to lista rzeczy do rozważenia przy tworzeniu aplikacji internetowych i wybierając między podejściami Object Oriented i proceduralnych w celu optymalizacji nie tylko prędkość, ale także konserwacji. Przytoczone przypadki badawcze i testowe byłoby pomocne, jak również, jeśli wiesz o wszelkich artykułów odkrywania tego dalej.

Konkluzja: jak duża (jeśli w ogóle) jest wydajność hit naprawdę, gdy idzie z OO vs. proceduralnych w interpretowanym języku?

Utwórz 06/08/2008 o 04:34
źródło użytkownik
W innych językach...                            


7 odpowiedzi

głosy
17

Może jestem szalony, ale obawy o prędkości w takich przypadkach przy użyciu języka interpretacyjny jest jak próbuje dowiedzieć się, jaki kolor pomalować szopy. Załóżmy nawet nie dostać się do idei, że ten rodzaj optymalizacji jest całkowicie przedwczesne.

Trafisz sedno, gdy powiedział: „konserwacji”. Chciałbym wybrać podejście, które jest najbardziej wydajne i najbardziej utrzymaniu. Jeśli trzeba przyspieszyć później, to nie przyjdzie od przełączania między proceduralne kontra obiektowego paradygmaty kodowania wewnątrz interpretowanym języku.

Odpowiedział 06/08/2008 o 04:36
źródło użytkownik

głosy
10

Niestety, robiłem też moich testów. Zrobiłem prędkość testową, a chodzi o to samo, ale przy testowaniu na wykorzystanie pamięci coraz memory_get_usage () w PHP, widziałem zdecydowanie większą ilość na stronie OOP.

116,576 bajtów dla OOP do 18,856 bajtów proceduralnych. Wiem, „Sprzęt jest tani”, ale daj spokój! 1,000% wzrost zużycia? Niestety, to nie jest optymalne. I tak wielu użytkowników, uderzając swoją stronę na raz, jestem pewien, że pamięć RAM po prostu spalić, albo zabraknie. Czy się mylę?

Odpowiedział 22/07/2011 o 22:28
źródło użytkownik

głosy
5

Konkluzja: nie, bo narzut interpretacji przytłacza napowietrznej metoda dyspozytorni.

Odpowiedział 06/08/2008 o 04:35
źródło użytkownik

głosy
2

Jeśli używasz interpretowany język, różnica jest nieistotna. Nie powinny być interpretowane przy użyciu języka, jeśli wydajność jest problem. Zarówno wystąpi o to samo.

Odpowiedział 06/08/2008 o 04:49
źródło użytkownik

głosy
1

Z mojego doświadczenia wynika, miejsce pod dużym obciążeniem będzie ugrzęznąć i przestać reagować znacznie łatwiej niż z kodem OOP proceduralny. Powodem jest to łatwe do zrozumienia.

OOP wymaga dużo więcej alokacji pamięci (malloc) i dużo więcej operacji uruchomić w pamięci niż kod proceduralny. To wymaga dużo więcej czasu procesora do wykonywania swoich zadań. Jest to w istocie „nad głową”, owinięty wokół kodu proceduralnego, dodając do obciążenia procesora do jego wykonania, szczególnie podczas wykonywania operacji na bazie danych.

Wielu programistów jak wygody OOP, tworząc małe czarne skrzynki ukryte za prostych interfejsów. Mam jednak zwrócono również ożywić miejsca, które były zawsze reagować biorąc pod dużym obciążeniem użytkownika. Stripping się z OOP i zastąpienie go z prostych funkcji procesowych wykonana ogromną różnicę.

Jeśli nie oczekiwać witryny mają być bardzo zajęty, za wszelką cenę wykorzystać OOP. Jeśli budujesz system wysokiego ruchu, będziemy chcieli rozebrać każdym cyklu procesora w wyniku przetwarzania i każdy bajt z wyjścia, że ​​można.

Odpowiedział 22/03/2015 o 19:31
źródło użytkownik

głosy
1

Twój wydajność będzie charakteryzował się wykonania, nie jest językiem. Można użyć najwolniejszą język i może skalować się największy portal na świecie tak długo, jak zaprojektować go skalować.

Wystarczy przypomnieć sobie pierwszą zasadę optimiztion.

nie robić.

:)

Odpowiedział 22/09/2008 o 19:18
źródło użytkownik

głosy
0

Ja faktycznie zrobić mały test jak to w python na stronie internetowej I utrzymania i okazało się, że są one niemal równoważne pod względem szybkości, z podejściem procesowym wygranej przez coś podobnego dziesięciu tysięcznych części sekundy, ale że kod był tak znaczący OO odkurzacz nie kontynuować ćwiczenia dłużej niż jednej iteracji.

Tak naprawdę, to nie ma znaczenia (z mojego doświadczenia tak).

Odpowiedział 26/08/2008 o 21:01
źródło użytkownik

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more