![]() |
![]() |
-lukasamd- |
![]()
Post
#1
|
Goście ![]() |
Witam,
ostatnio zaintrygowało mnie jedno pytanie - jak się ma do wydajności argument przekazywany do funkcji? Powiedzmy sobie, że mam coś takiego:
Funkcja, do której przekazuję w argumencie tablicę. Z tej tablicy potrzebuję jednak tylko id, a więc w sumie lepsze wydaje się to:
No ale czasami zachodzi potrzeba użycia czegoś z tablicy poza tym id... sporadycznie ale jednak. Jak wygląda porównanie obu tych sposobów pod względem wydajności? Czy po zwróceniu wartości automatycznie argumenty przekazywane do funkcji są niszczone (lokalnie wewnątrz funkcji), czy ma to jakiś konkretny wpływ na działanie? Ten post edytował lukasamd 16.06.2010, 17:37:23 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Jeśli do odczytu to owszem, ale zazwyczaj jest tak, że pchając coś jako argument operujesz na nim i potem go zwracasz już zmieniony, choć często nie chce się przy tym tykać oryginału, który ma służyć jeszcze jakimś operacjom. Wtedy kopię utworzy i tak. Jeśli oryginał jest nieistotny to warto rozważać wtedy referencje, bo jednak jakiś tam drobny zysk uzyskamy. Ale jak już wspomniałem, nie są to astronomiczne wartości i rozważa się na tym poziomie zmiany już raczej w sytuacjach gdy mocno nam zależy na optymalizacji, choćby ułamków sekund. tak jak optymalizacją jest odwrócenie biegu pętli. Nie od 0 do określonej wartości, ale od tejże wartości do 0 (gdy wartość licznika jest nieważna lub mało istotna) (IMG:style_emoticons/default/smile.gif) Kto nie wierzy niech sprawdzi, bo w pewnych językach (choćby JavaScript) takie optymalizacje są skuteczne, choć nie spodziewa się człowiek, że mają jakikolwiek wpływ na wydajność.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 5.10.2025 - 15:51 |