Skocz do zawartości
  • 0

Najwydajniejszy sposób na zapis zmiennych


RodgerDodg3r
 Udostępnij

Pytanie

Witam!

 

Ostatnio zastanawiałem się na słusznością używania plików YML na zapis zmiennych moich graczy. Ten sposób jest mega wygodny bo wszystko jest czytelne i ładne. Jakoś niedawno natknałem się na skunity temat który negował tezę że, YML jest to najlepszy sposób zapisu zmiennych. Więc przechodząc do meritum.

 

Jaki jest najlepszy sposób na zapisu zmiennych? YML,zmienne skriptowe, meta data?

 

#Disclaimer! Prosiłbym o wypowiadanie się przez osoby które się faktycznie na tym znają.

 

Dziękuje i pozdrawiam!

MrJuliusz

Odnośnik do komentarza
Udostępnij na innych stronach

3 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0

Owszem, również napotkałem się na ten temat na owej stronie.

Zrobiłem własne doświadczenia i zgadzam się z autorem tematu z skunity.

To co niżej opiszę, to jest moja subiektywna opinia i nikogo nie zmuszam, by się z nią zgadzał.

Co do Yaml:

To jest bardzo fajny środek, można z niego korzystać w skryptach, ale tylko do celów konfiguracji i to w miejscach, z których się rzadko korzysta np komendy.

Dlaczego? Ponieważ skrypt, pobiera te dane z pliku, który jest na dysku. Czyli najpierw musi pobrać dane z dysku. A pobranie danych z dysku jest wolniejsze od tych, które mamy od razu zapisane w RAM. (Zmienne skrypta, są zapisywane w RAM!)

Jeżeli byśmy zrobili event on damage lub every 5 tick i w nim pobierali dane YML to nie jest bardzo optymalne, ponieważ za każdym wywołanym eventem, procesor musi pobrać te dane z dysku.

Załóżmy, że mamy 10 graczy na serwerze, każdy kogoś bije w tym samym momencie, więc sobie pomyśl ile razy te same dane musi pobrać.

Fajna opcja jest wtedy, gdy podczas załadowania skryptu, te dane z konfiguracji YML zapiszemy w zmiennych, wtedy będzie to bardziej optymalne.

 

Co do zmiennych, do nich nie mam żadnych zastrzeżeń, jedynie takie, że jeżeli taką zmienną usuniemy delete {test.%player%} to dalej będziemy mieli w variables.csv {test.knugi} NULL co jednak zabiera kilka bajtów na dysku, lecz nie wpływa to na jakiekolwiek obciążenia RAMU.

 

Z metadatą mam mało styczności, ale to fajna opcja do robienia takich rzeczy jak np:

Dodatkowe obrażenia/ochrona na przedmiotach. 

 

 

 

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0

Yaml najlepiej tylko przy zdarzeniach które nie wykonują się często. Pobieranie/zapis trochę trwa.

Myślę że najlepiej zrobić w zmiennych i jeżeli chcesz dostęp w yml to w on load zapisywać wartości do plików i zapisywać zmienne. 

Odnośnik do komentarza
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Nieaktywny
Odpowiedz na pytanie...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

 Udostępnij

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...