Skocz do zawartości
  • 0

Skriptowe Rozważania


Nieaktywny
 Udostępnij

Pytanie

Mam ciekawe pytanko do ludności skript.pl

 

Co jest bardziej bezpieczne i mniej lagujące:

variables.csv

czy (dla kazdego gracza osobny plik z zmiennymi w yml)

graczktorys.yml

 

------------------------------------------------------------

Jak sądzicie co będzie wydajniejsze i mniej wpływało na lagi na serwerze ?

Mam taki plik na serwerze variables.csv który waży 200MB ;) (i jak pobiera z niego dane skript to co jakieś 15-120 (róznie) sekund generuję się okropny lag 5 sekundowy nawet, a tps cały czas wynosi =20. (dedykowana maszyna)

 

Jak myślicie osobne pliki .yml dla każdego gracza (jako zmienne) są lepszym pomysłem, aby powodować mniejsze lagi ?

Odnośnik do komentarza
Udostępnij na innych stronach

9 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0

A ja napiszę na abarot.

Lepsze jest variables.csv

Wględem bezpieczeństwa, jest on jakotako zhashowany. W pliku YAML jest wszystko czarno na białym. W .csv dostęp ma jedynie Skript a do yml wszystko.

Mniej lagujące? .csv jest mniej lagujące. Przedstawiam wam tutaj dowód:

Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść!

ustawianie 3000 zmiennych w .csv = 2 sekundy

--"-- w yml = minuta i 21 sekund.

Pobieranie 500 wartości z .csv = niecała sekunda

--"-- z yml = 9 sekund.

Nie wierzycie? Zróbcie sobie test.

Macie taki kod:

Spoiler
command /test:
	trigger:
		send "Zaczynam probe YAML vs .csv"
		set {_CSV.SAVE} to now
		loop 2000 times:
			set {probaCSV::%loop-number%} to true
		send "Zapisalem 2000 zmiennych CSV w: %difference between now and {_CSV.SAVE}%"
		set {_YAML.SAVE} to now
		loop 2000 times:
			set yaml value "test.%loop-number%" from "test.yml" to true
		send "Zapisalem 2000 zmiennych YAML w: %difference between now and {_YAML.SAVE}%"
		set {_CSV.READ} to now
		loop 500 times:
			set {_x.%loop-number%} to {probaCSV::%loop-number%}
		send "Odczytalem 500 wartosci z CSV w: %difference between now and {_CSV.READ}%"
		set {_YAML.READ} to now
		loop 500 times:
			set {_y.%loop-number%} to yaml value "test.%loop-number%" from "test.yml"
		send "Odczytalem 500 wartosci z YAML w: %difference between now and {_YAML.READ}%"

 

Mi wyszło tak:

>test
[15:22:23 INFO]: Zaczynam probe YAML vs .csv
[15:22:23 INFO]: Zapisalem 2000 zmiennych CSV w: 0.02 seconds
[15:22:44 INFO]: Zapisalem 2000 zmiennych YAML w: 21.14 seconds
[15:22:44 INFO]: Odczytalem 500 wartosci z CSV w: 0 seconds
[15:22:46 INFO]: Odczytalem 500 wartosci z YAML w: 1.77 seconds

 

Teraz z was się śmieje, którzy uważają że YAML jest lepszy, chociaż nie mają na to żadnych dowodów.

Pozdrawiam #Knugi

 

//Jak zrobisz każdy osobny plik dla osobnego gracza to tym bardziej jeszcze dłużej będzie odczytywać dane.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
2 godziny temu, knugi napisał:

A ja napiszę na abarot.

Lepsze jest variables.csv

Wględem bezpieczeństwa, jest on jakotako zhashowany. W pliku YAML jest wszystko czarno na białym. W .csv dostęp ma jedynie Skript a do yml wszystko.

Mniej lagujące? .csv jest mniej lagujące. Przedstawiam wam tutaj dowód:

Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść!

ustawianie 3000 zmiennych w .csv = 2 sekundy

--"-- w yml = minuta i 21 sekund.

Pobieranie 500 wartości z .csv = niecała sekunda

--"-- z yml = 9 sekund.

Nie wierzycie? Zróbcie sobie test.

Macie taki kod:

Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść! Pokaż ukrytą zawartość

command /test:
	trigger:
		send "Zaczynam probe YAML vs .csv"
		set {_CSV.SAVE} to now
		loop 2000 times:
			set {probaCSV::%loop-number%} to true
		send "Zapisalem 2000 zmiennych CSV w: %difference between now and {_CSV.SAVE}%"
		set {_YAML.SAVE} to now
		loop 2000 times:
			set yaml value "test.%loop-number%" from "test.yml" to true
		send "Zapisalem 2000 zmiennych YAML w: %difference between now and {_YAML.SAVE}%"
		set {_CSV.READ} to now
		loop 500 times:
			set {_x.%loop-number%} to {probaCSV::%loop-number%}
		send "Odczytalem 500 wartosci z CSV w: %difference between now and {_CSV.READ}%"
		set {_YAML.READ} to now
		loop 500 times:
			set {_y.%loop-number%} to yaml value "test.%loop-number%" from "test.yml"
		send "Odczytalem 500 wartosci z YAML w: %difference between now and {_YAML.READ}%"

 

Mi wyszło tak:

>test
[15:22:23 INFO]: Zaczynam probe YAML vs .csv
[15:22:23 INFO]: Zapisalem 2000 zmiennych CSV w: 0.02 seconds
[15:22:44 INFO]: Zapisalem 2000 zmiennych YAML w: 21.14 seconds
[15:22:44 INFO]: Odczytalem 500 wartosci z CSV w: 0 seconds
[15:22:46 INFO]: Odczytalem 500 wartosci z YAML w: 1.77 seconds

 

Teraz z was się śmieje, którzy uważają że YAML jest lepszy, chociaż nie mają na to żadnych dowodów.

Pozdrawiam #Knugi

 

//Jak zrobisz każdy osobny plik dla osobnego gracza to tym bardziej jeszcze dłużej będzie odczytywać dane.

A co do skript-db?

Wg. mnie skript-db lepszy by był. 

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
2 godziny temu, knugi napisał:

A ja napiszę na abarot.

Lepsze jest variables.csv

Wględem bezpieczeństwa, jest on jakotako zhashowany. W pliku YAML jest wszystko czarno na białym. W .csv dostęp ma jedynie Skript a do yml wszystko.

Mniej lagujące? .csv jest mniej lagujące. Przedstawiam wam tutaj dowód:

Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść!

ustawianie 3000 zmiennych w .csv = 2 sekundy

--"-- w yml = minuta i 21 sekund.

Pobieranie 500 wartości z .csv = niecała sekunda

--"-- z yml = 9 sekund.

Nie wierzycie? Zróbcie sobie test.

Macie taki kod:

Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść! Pokaż ukrytą zawartość

command /test:
	trigger:
		send "Zaczynam probe YAML vs .csv"
		set {_CSV.SAVE} to now
		loop 2000 times:
			set {probaCSV::%loop-number%} to true
		send "Zapisalem 2000 zmiennych CSV w: %difference between now and {_CSV.SAVE}%"
		set {_YAML.SAVE} to now
		loop 2000 times:
			set yaml value "test.%loop-number%" from "test.yml" to true
		send "Zapisalem 2000 zmiennych YAML w: %difference between now and {_YAML.SAVE}%"
		set {_CSV.READ} to now
		loop 500 times:
			set {_x.%loop-number%} to {probaCSV::%loop-number%}
		send "Odczytalem 500 wartosci z CSV w: %difference between now and {_CSV.READ}%"
		set {_YAML.READ} to now
		loop 500 times:
			set {_y.%loop-number%} to yaml value "test.%loop-number%" from "test.yml"
		send "Odczytalem 500 wartosci z YAML w: %difference between now and {_YAML.READ}%"

 

Mi wyszło tak:

>test
[15:22:23 INFO]: Zaczynam probe YAML vs .csv
[15:22:23 INFO]: Zapisalem 2000 zmiennych CSV w: 0.02 seconds
[15:22:44 INFO]: Zapisalem 2000 zmiennych YAML w: 21.14 seconds
[15:22:44 INFO]: Odczytalem 500 wartosci z CSV w: 0 seconds
[15:22:46 INFO]: Odczytalem 500 wartosci z YAML w: 1.77 seconds

 

Teraz z was się śmieje, którzy uważają że YAML jest lepszy, chociaż nie mają na to żadnych dowodów.

Pozdrawiam #Knugi

 

//Jak zrobisz każdy osobny plik dla osobnego gracza to tym bardziej jeszcze dłużej będzie odczytywać dane.

oni chcą być profesjonalni, lepsza konfiguracja i zapis w yml niż options i csv :kappa: 

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
6 godzin temu, knugi napisał:

A ja napiszę na abarot.

Lepsze jest variables.csv

Wględem bezpieczeństwa, jest on jakotako zhashowany. W pliku YAML jest wszystko czarno na białym. W .csv dostęp ma jedynie Skript a do yml wszystko.

Mniej lagujące? .csv jest mniej lagujące. Przedstawiam wam tutaj dowód:

Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść!

ustawianie 3000 zmiennych w .csv = 2 sekundy

--"-- w yml = minuta i 21 sekund.

Pobieranie 500 wartości z .csv = niecała sekunda

--"-- z yml = 9 sekund.

Nie wierzycie? Zróbcie sobie test.

Macie taki kod:

Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść! Pokaż ukrytą zawartość

command /test:
	trigger:
		send "Zaczynam probe YAML vs .csv"
		set {_CSV.SAVE} to now
		loop 2000 times:
			set {probaCSV::%loop-number%} to true
		send "Zapisalem 2000 zmiennych CSV w: %difference between now and {_CSV.SAVE}%"
		set {_YAML.SAVE} to now
		loop 2000 times:
			set yaml value "test.%loop-number%" from "test.yml" to true
		send "Zapisalem 2000 zmiennych YAML w: %difference between now and {_YAML.SAVE}%"
		set {_CSV.READ} to now
		loop 500 times:
			set {_x.%loop-number%} to {probaCSV::%loop-number%}
		send "Odczytalem 500 wartosci z CSV w: %difference between now and {_CSV.READ}%"
		set {_YAML.READ} to now
		loop 500 times:
			set {_y.%loop-number%} to yaml value "test.%loop-number%" from "test.yml"
		send "Odczytalem 500 wartosci z YAML w: %difference between now and {_YAML.READ}%"

 

Mi wyszło tak:

>test
[15:22:23 INFO]: Zaczynam probe YAML vs .csv
[15:22:23 INFO]: Zapisalem 2000 zmiennych CSV w: 0.02 seconds
[15:22:44 INFO]: Zapisalem 2000 zmiennych YAML w: 21.14 seconds
[15:22:44 INFO]: Odczytalem 500 wartosci z CSV w: 0 seconds
[15:22:46 INFO]: Odczytalem 500 wartosci z YAML w: 1.77 seconds

 

Teraz z was się śmieje, którzy uważają że YAML jest lepszy, chociaż nie mają na to żadnych dowodów.

Pozdrawiam #Knugi

 

//Jak zrobisz każdy osobny plik dla osobnego gracza to tym bardziej jeszcze dłużej będzie odczytywać dane.

No nie wiem czy .csv jest lepszy ja też robiłem test "modernizacji wartości" [WYNIKI; 20 000 wartości // 9 minut około ]. Tak odczytywało (ps: na serwerze TPS wynosił maxymalną wydajność ;20).

Tak czy owak nie wszystkie zmienne by były w .yaml - tylko te "pojedyncze" do oczytywania. (np: opcja barwnika składni zdań na chacie, ID misji itp). A takie jak antyspam'y, antybugi (czas oczekiwania, większość zmiennych grupowych dużych które trzeba wykonać w tym samym czasie by były w .csv). Zatem to już zmienia trochę obrót spraw i pokazuje jak .csv i .yaml mogą żyć w symbiozie dzielenia się bez jednoczesnego zapychania danymi w jednym pliku na siłę.

Edytowane przez Nieaktywny
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ę...