salat
16.02.2004, 22:36:40
Zastanawiam się jak jest lepiej zwracać duży obiekt przez funkcję. Czy przy pomocy argumentu funkcji, podanego przez referencję, czy przy pomocy rezultatu zwracanego przez referencje.
No bo która metoda może zużywać więcej zasobów. Gdy utworzę obiekt przed wywołaniem funkcji i podam go jako argument aktualny (przez referencję oczywiście) a funkcja w jakiś tam sposób będzie sobie na nim operować. Czy gdy utworzę obiekt w ciele funkcji, a jako rezultat zwróce referencję do tego obiektu.
jak myślicie ?
rzseattle
16.02.2004, 22:43:54
Tak czy siak bedziesz mosial stworzyc nowa instancje i czy odbedzie sie to w ciele funkcji czy przed nia nie powinno miec znaczenia, przeciez jest to zmienna globalna i i tak znajduje sie glownym stosie a nie stosie rowijanym i zwijanym przez funkcje.
salat
16.02.2004, 22:57:18
No właśnie jest to zmienna globalna, ale w sytuacji, gdy jest podawana jako parametr, bo jeśli jest tworzona w ciele funkcji (nie jest na liście jej parametrów), to jest umieszczana na "stosie funkcji" i w momencie, gdy zwracamy ją przez referencję to musi zostać przeniesiona (w jakiś sposób) na stos główy. Czyli jednak lepiej jest tworzyć przed wywołaniem funkcji i posłać jako parametr. Chyba że się mylę...
rzseattle
16.02.2004, 23:20:19
Jesli zadeklarujesz zmienna funkcji jako globala to jeden kit czy utworzysz obiekt w samej funkcji czy przed nia. I tak miejsce dla zmiennej bedzie na stosie glownym ($GLOBALS).
KaMeLeOn
17.02.2004, 00:27:40
Tworzenie referencji w argumencie funkcji lub zwracanie referencji z funkcji
jest dosyć czasochłonne co wpływa na wydajność aplikacji.
Deklaracja zmiennej jako globals, tworzy alias klucza w tablicy $GLOBALS i bezpośrednio wskazuje na niego.
Jeśli zależy Ci na wydajności osobiście polecam tą metodę.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.