🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.php
Article #231911

Re: Dobre praktyki

#231911
From: Rafal Podsiadly
Date: Sun, 28 Jan 2018 15:08
20 lines
2961 bytes
> Nie musisz mi tłumaczyć podstawowych pojęć. Ja się pytam, czy znasz jakieś
> różnice w kontekście wydajności przy obsłudze parametrów w funkcji, a w
> metodzie.
> 
> -- 
> Borys Pogoreło
> borys(#)leszno,edu,pl

Miałem na myśli sposób odkładania funkcji w pamięci, a funkcji w klasach. O tym że przekazując zmienna do klasy przekazujemy jej kopie (chyba, że zdeklarujemy inaczej), przekazując obiekt przekazujemy jego adres.

Funkcja żyje w pamięci cały czas i każde jej użycie to przeładowanie stosu załadowanie funkcji zakończenie i zwolnienie stosu.

Klasa żyje w pamięci gdy utworzymy jej instancje ale tylko z atrybutami. Natomiast funkcje klas odkładane są w pamięci w postaci adresów do funkcji. W rezultacie wywołując funkcje z klasy odwiedzamy adres w pamięci do funkcji. 

Uruchamiając obiekt też mamy przeładowanie stosu -> załadowanie obiektu z atrybutami i wszystkimi adresami do funkcji. Tworząc wielokrotność obiektu mamy ciągle w każdej instancji ten sam adres do tej samej metody.
Jeśli wywołujemy funkcje jedna po drugiej to one nie wymagają już przeładowania stosu.

Między innymi dlatego tak dobry jest polimorfizm i dziedziczenie. Bo każda klasa z której dziedziczymy zawiera adresy metod a nie same metody w swoim ciele w pamięci. 

Mam nadzieje że dość jasno się wyraziłem. Jak coś piszcie.
Technical Details
Message-ID: <7896593d-cdba-43e8-9e80-67933cd6b5e7@googlegroups.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!weretis.net!feeder6.news.weretis.net!feeder.usenetexpress.com!feeder-in1.iad1.usenetexpress.com!border1.nntp.dca1.giganews.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!s47no2574221qta.0!news-out.google.com!g8ni670qtk.0!nntp.google.com!i22no2573454qta.1!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
References: <2lhebv1xabri$.dlg@tyczka.com> <6d0bd754-9b46-46ce-98ff-c5265a9a93af@googlegroups.com> <chac9zcm8l6a.1gxug7ng6lbce$.dlg@40tude.net> <cd0f750f-2346-4016-bbbd-a72c386c561d@googlegroups.com> <11h5x9gnb08i1$.1b3r2cdtpxkuj$.dlg@40tude.net>

Show Full Headers
Complete Article Headers
X-Received: by 10.200.4.26 with SMTP id v26mr14327942qtg.25.1517152086772;        Sun, 28 Jan 2018 07:08:06 -0800 (PST)
X-Received: by 10.31.50.209 with SMTP id y200mr2178033vky.3.1517152086475; Sun, 28 Jan 2018 07:08:06 -0800 (PST)
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!weretis.net!feeder6.news.weretis.net!feeder.usenetexpress.com!feeder-in1.iad1.usenetexpress.com!border1.nntp.dca1.giganews.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!s47no2574221qta.0!news-out.google.com!g8ni670qtk.0!nntp.google.com!i22no2573454qta.1!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
Newsgroups: pl.comp.lang.php
Date: Sun, 28 Jan 2018 07:08:06 -0800 (PST)
In-Reply-To: <11h5x9gnb08i1$.1b3r2cdtpxkuj$.dlg@40tude.net>
Complaints-To: groups-abuse@google.com
Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=87.207.83.154; posting-account=reqlzgoAAACKWK1i9kGr8VyQtzu_4AF6
NNTP-Posting-Host: 87.207.83.154
References: <2lhebv1xabri$.dlg@tyczka.com> <6d0bd754-9b46-46ce-98ff-c5265a9a93af@googlegroups.com> <chac9zcm8l6a.1gxug7ng6lbce$.dlg@40tude.net> <cd0f750f-2346-4016-bbbd-a72c386c561d@googlegroups.com> <11h5x9gnb08i1$.1b3r2cdtpxkuj$.dlg@40tude.net>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <7896593d-cdba-43e8-9e80-67933cd6b5e7@googlegroups.com>
Subject: Re: Dobre praktyki
From: Rafal Podsiadly <spinacz24@gmail.com>
Injection-Date: Sun, 28 Jan 2018 15:08:06 +0000
Lines: 36
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit