Skocz do zawartości

  • Zaloguj korzystając z Facebooka Zaloguj korzystając z Twittera Zaloguj przez Steam Zaloguj poprzez Google      Logowanie »   
  • Rejestracja

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.

  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

[ROZWIĄZANE] Zmienne w funkcjach a pamięć RAM serwera.


Najlepsza odpowiedź K!113r, 04.06.2013 17:10

Jest tworzona raz, po zakończeniu działania funkcji zamraża swoją wartość, przy kolejnym wywołaniu funkcji odmraża się jej wartość, słowem raz utworzona żyje sobie dalej po zakończeniu działania funkcji, więc lepiej jej użyć w np. prethinku, zamiast kilkadziesiąt razy na sekunde tworzyć zmienną lepiej ją zrobić raz. Odp. "Tak"

Przejdź do postu


  • Zamknięty Temat jest zamknięty
4 odpowiedzi w tym temacie

#1 Czaso Umilacz

    Profesjonalista

  • Użytkownik

Reputacja: 33
Życzliwy

  • Postów:152
  • Imię:Olek
  • Lokalizacja:Leszno
Offline

Napisano 03.06.2013 21:29

Witam,

nigdy się nad tym nie zastanawiałem ale naszło mnie pytanie, deklarując zmienną w funkcji np:

public Funkcja(){
	new zmienna[1024];
		
	return PLUGIN_CONTINUE;
}

I teraz pytanie, kiedy zmienna będzie ładowana do pamięci RAM serwera?


Użytkownik Czaso Umilacz edytował ten post 03.06.2013 21:30

  • +
  • -
  • 0

#2 GwynBleidD

    Godlike

  • Administrator

Reputacja: 1849
Godlike

  • Postów:3066
  • Steam:steam
  • Lokalizacja:Przemyśl
Offline

Napisano 03.06.2013 23:29

Przy każdym wywołaniu funkcji będzie ona tworzona na stosie... Co jest bardzo złe w przypadku tak dużej tablicy. Przy deklaracji jako static będzie ona tworzona na początku każdej mapy.


  • +
  • -
  • 1
NIE pomagam na PW. Nie trudź się, na zlecenia nie odpiszę... Od pomagania jest forum.
NIE zaglądam w tematy wysłane na PW. Jeśli są na forum to prędzej czy później je przeczytam. Jeśli mam co w nich odpisać, to odpiszę.
 
1988650.png?theme=dark

#3 Czaso Umilacz

    Profesjonalista

  • Autor tematu
  • Użytkownik

Reputacja: 33
Życzliwy

  • Postów:152
  • Imię:Olek
  • Lokalizacja:Leszno
Offline

Napisano 04.06.2013 16:53

Czyli zmienna "new" jest tworzona co wywołanie funkcji, natomiast static jest raz zrzucana do pamięci?


  • +
  • -
  • 0

#4 K!113r

    Czempion

  • Power User

Reputacja: 385
Wszechpomocny

  • Postów:865
  • GG:
  • Steam:steam
  • Imię:Mateusz
  • Lokalizacja:Piotrków Tryb.
Offline

Napisano 04.06.2013 17:10   Najlepsza odpowiedź

Jest tworzona raz, po zakończeniu działania funkcji zamraża swoją wartość, przy kolejnym wywołaniu funkcji odmraża się jej wartość, słowem raz utworzona żyje sobie dalej po zakończeniu działania funkcji, więc lepiej jej użyć w np. prethinku, zamiast kilkadziesiąt razy na sekunde tworzyć zmienną lepiej ją zrobić raz. Odp. "Tak"


  • +
  • -
  • 1

DarkGL to mój autorytet.

skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować


#5 Czaso Umilacz

    Profesjonalista

  • Autor tematu
  • Użytkownik

Reputacja: 33
Życzliwy

  • Postów:152
  • Imię:Olek
  • Lokalizacja:Leszno
Offline

Napisano 04.06.2013 17:15

Dzięki, czas się zabawiać staticem, moja nowa obsesja w funkcjach :D


  • +
  • -
  • 0




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych