Skocz do zawartości
  • 0

Wydajność skryptów


Slupik98

Pytanie

Dużo mówi się o wydajności skryptów - że są mało wydajne przy dużej ilości zmiennych(zgaduję że chodzi o plik :) ), a zatem czy skrypty będą wydajniejsze jeżeli zmienne będę zapisywał do configu(tak jak to robi essentials), a następnie z niego odczytywał niezbędne dane? Wszystko wtedy działałoby na zasadzie zmiennych tymczasowych :)

 

Ciekawi mnie różwnież jak ilość opcji i długość kodu wpływa na wydajność skryptu.

Proszę o w miarę uzasadnione odpowiedzi.

 

 

Wszystkie posty typu "tak" lub "nie" bez mądrych uzasadnień proszę administrację by traktować jako spam...

Odnośnik do komentarza
Udostępnij na innych stronach

Rekomendowane odpowiedzi

  • 0

Well...

Odczytywanie variables z pliku sprawdza się tylko w wypadku dużej ilości danych.

Co do długości... tak.

Dekompilowałem i modyfikowałem skript wiele razy, a co za tym idzie znam jego procedury. Polega to na odszukiwaniu i parsowaniu pierw eventów potem warunków potem efektów. Można to porównać do programisty java któremu dajemy rysunek jak to ma wygądać, a on pisze.

Im więcej kodu, tym więcej czasu to zajmuje i zajmuje więcej ramu potrzebnego do zapisu zamienionego kodu.

Dziękuję, do widzenia.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0

Dzięki za taką fachową odpowiedź, ale czy ta procedura za każdym wywołaniem efektu powtarza się czy tylko przy wczytywaniu?
Bo jeżeli tylko podczas wczytywaniu kodu to chyba nie gra to większej roli przy działaniu już samego kodu.

Możesz rzucić więcej światła na tą kwestię?

 

Poza tym czekam jeszcze na odpowiedź w sprawie Options, a raczej ich wpływu na wydajność, oraz czy możesz mniej więcej powiedzieć co ma na mysli pisząc o dużej ilości danych(jakieś bardziej szczegółowe dane jeżeli możesz)? 

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0

Dzięki za taką fachową odpowiedź, ale czy ta procedura za każdym wywołaniem efektu powtarza się czy tylko przy wczytywaniu?

Bo jeżeli tylko podczas wczytywaniu kodu to chyba nie gra to większej roli przy działaniu już samego kodu.

Możesz rzucić więcej światła na tą kwestię?

Poza tym czekam jeszcze na odpowiedź w sprawie Options, a raczej ich wpływu na wydajność, oraz czy możesz mniej więcej powiedzieć co ma na mysli pisząc o dużej ilości danych(jakieś bardziej szczegółowe dane jeżeli możesz)?

Skrypt wczytuje się do ramu.

Nie powinno to wpływać na wydajność po przeładowaniu.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0

Mam się odzywać, czy wolisz słuchać @Parrot? xD

Uprzedzam, że Parrot przestanie mnie potem lubić :(

Więc mi tego nie rób! xd

P.S.

Poza tym, nie za bardzo mi sie chce, po raz setny ... xd

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0

Dużo mówi się o wydajności skryptów - że są mało wydajne przy dużej ilości zmiennych(zgaduję że chodzi o plik :) ), a zatem czy skrypty będą wydajniejsze jeżeli zmienne będę zapisywał do configu(tak jak to robi essentials), a następnie z niego odczytywał niezbędne dane? Wszystko wtedy działałoby na zasadzie zmiennych tymczasowych :)

Ciekawi mnie różwnież jak ilość opcji i długość kodu wpływa na wydajność skryptu.

Proszę o w miarę uzasadnione odpowiedzi.

Wszystkie posty typu "tak" lub "nie" bez mądrych uzasadnień proszę administrację by traktować jako spam...

Nie, ilość zmiennych nie wpływa na wydajność, ew. przy naprawdę dużej ilości może Ci to skoczyc o cos w stylu 5ms, wiec ... xd Gorzej z zapisem takiej ilosci danych, ale bez przesady.

I nie, pobieranie zmiennych w trakcie wykonywania kodu bedzie wolniejsze i generalnie tak sie nie robi.

Długość kodu teoretycznie nie ma znaczenia, jeżeli mówimy o bezsensownie napisanym kodzie, a nie po prostu o duzym skrypcie :P

Opcje, czyli options? To są zwykłe aliasy i tyle. Jakos specjalnie to nie moze tam szkodzic xd

Well...

Odczytywanie variables z pliku sprawdza się tylko w wypadku dużej ilości danych.

Co do długości... tak.

Dekompilowałem i modyfikowałem skript wiele razy, a co za tym idzie znam jego procedury. Polega to na odszukiwaniu i parsowaniu pierw eventów potem warunków potem efektów. Można to porównać do programisty java któremu dajemy rysunek jak to ma wygądać, a on pisze.

Im więcej kodu, tym więcej czasu to zajmuje i zajmuje więcej ramu potrzebnego do zapisu zamienionego kodu.

Dziękuję, do widzenia.

1. Właśnie w ogóle nie sprawdza się to w przypadku dużej ilości danych.

2. Co do długości... nie. Masz wyżej.

3. Pomine ten dziwny proces, którego nie doświadczam xd

4. Interpretacja kodu trwa dosyc krotko, ale jak dlugo to sie laduje, to ma dla nas nijakie znaczenie.

A jak popadniemy w paranoje i będziemy wyliczac ile to zajmuje ... Kwestie ramu, to ja bym tu po prostu ominal, bo jest zupelnie nie istotna :x

Kazdy plugin, ba - stworzony na chwile obiekt, trzymany jest w naszej pamieci (bo gdzies musi!)

Dzięki za taką fachową odpowiedź, ale czy ta procedura za każdym wywołaniem efektu powtarza się czy tylko przy wczytywaniu?

Bo jeżeli tylko podczas wczytywaniu kodu to chyba nie gra to większej roli przy działaniu już samego kodu.

Możesz rzucić więcej światła na tą kwestię?

Poza tym czekam jeszcze na odpowiedź w sprawie Options, a raczej ich wpływu na wydajność, oraz czy możesz mniej więcej powiedzieć co ma na mysli pisząc o dużej ilości danych(jakieś bardziej szczegółowe dane jeżeli możesz)?

Kod jest interpretowany tylko przy ładowaniu, ew. jego reloadzie.

Reszta wyżej.

Skrypt wczytuje się do ramu.

Nie powinno to wpływać na wydajność po przeładowaniu.

Hymmm... Bo zupełnie nic sie wtedy nie dzieje xD?

Czyli jeżeli mam dużo ramu to skrypty to nie problem tak? :)

Jeszcze się zapytam ile średnio ramu zajmuje 1 linijka.

Paranoja - Masz wyżej xd

Ja tam stronniczy nie jestem :)

Lepiej zebrac parę opini, by dowiedzieć się jeszcze czegoś więcej, a obydwaj jesteście ekspertami więc czemu nie.

No to masz, zadałes na szczescie pytanie o konkretne elementy, wiec mniej pisania xd
Odnośnik do komentarza
Udostępnij na innych stronach

  • 0

Nie, ilość zmiennych nie wpływa na wydajność, ew. przy naprawdę dużej ilości może Ci to skoczyc o cos w stylu 5ms, wiec ... xd Gorzej z zapisem takiej ilosci danych, ale bez przesady.

I nie, pobieranie zmiennych w trakcie wykonywania kodu bedzie wolniejsze i generalnie tak sie nie robi.

Długość kodu teoretycznie nie ma znaczenia, jeżeli mówimy o bezsensownie napisanym kodzie, a nie po prostu o duzym skrypcie :P

Opcje, czyli options? To są zwykłe aliasy i tyle. Jakos specjalnie to nie moze tam szkodzic xd

1. Właśnie w ogóle nie sprawdza się to w przypadku dużej ilości danych.

2. Co do długości... nie. Masz wyżej.

3. Pomine ten dziwny proces, którego nie doświadczam xd

4. Interpretacja kodu trwa dosyc krotko, ale jak dlugo to sie laduje, to ma dla nas nijakie znaczenie.

A jak popadniemy w paranoje i będziemy wyliczac ile to zajmuje ... Kwestie ramu, to ja bym tu po prostu ominal, bo jest zupelnie nie istotna :x

Kazdy plugin, ba - stworzony na chwile obiekt, trzymany jest w naszej pamieci (bo gdzies musi!)

Kod jest interpretowany tylko przy ładowaniu, ew. jego reloadzie.

Reszta wyżej.

Hymmm... Bo zupełnie nic sie wtedy nie dzieje xD?

Paranoja - Masz wyżej xd

No to masz, zadałes na szczescie pytanie o konkretne elementy, wiec mniej pisania xd

W sumie i tak cię lubię ale się z tobą nie zgadzam.
Odnośnik do komentarza
Udostępnij na innych stronach

  • 0

Może ja mam rację, może ty ale nie ma się o co kłócić.

Ja mam takie zdanie i tyle.

Ja wiem, ze ja mam racje xd Co jest szybsze:

1. HashMap --> get(zmienna)

2. Plik --> Parser Yml --> Obiekt YamlConfiguration --> get(zmienna)

To nie musi byc nawet yaml, ale jakis parser zawsze jest xd

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0

Wykorzystałem już limit, ale chyba należy się wam :)

Bardzo się cieszę że wspomnieliście o zasadzie wczytywania skryptu(bo do tej pory nic o tym nie wiedziałem), bo przydało mi to się.

Mam skrypt w którym kawałek komendy buguje się i nie chce się aktualizować, dopiero po wyłączeniu i włączeniu serwera wczytuje się poprawiony kod, a to strasznie irytuje :/

To jest jakiś błąd mojego skryptu(jakiś znak, bo np przy $ skrypt nie działa), czy może błąd pluginu? Czy wpływa to jakoś na wydajność mojego serwera?

I ostatnie pytanie: Czy wychodzi na to że skrypty są lepsze od pluginów?

- Pisze się je szybciej

- Są maksymalnie zoptymalizowane w kodzie(chodzi mi o plugin)

- Ilość zmiennych nie wpływa znacząco na ich szybkość

 

A i czy jeżeli będę korzystał z metadat, które dodaje bukkit, a ja mogę korzystać z nich przez addon Randomsk to będzie to mniej wydajne niż zwykłe zmienne?

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0

Wykorzystałem już limit, ale chyba należy się wam :)

Bardzo się cieszę że wspomnieliście o zasadzie wczytywania skryptu(bo do tej pory nic o tym nie wiedziałem), bo przydało mi to się.

Mam skrypt w którym kawałek komendy buguje się i nie chce się aktualizować, dopiero po wyłączeniu i włączeniu serwera wczytuje się poprawiony kod, a to strasznie irytuje :/

To jest jakiś błąd mojego skryptu(jakiś znak, bo np przy $ skrypt nie działa), czy może błąd pluginu? Czy wpływa to jakoś na wydajność mojego serwera?

I ostatnie pytanie: Czy wychodzi na to że skrypty są lepsze od pluginów?

- Pisze się je szybciej

- Są maksymalnie zoptymalizowane w kodzie(chodzi mi o plugin)

- Ilość zmiennych nie wpływa znacząco na ich szybkość

A i czy jeżeli będę korzystał z metadat, które dodaje bukkit, a ja mogę korzystać z nich przez addon Randomsk to będzie to mniej wydajne niż zwykłe zmienne?

Jezeli chcesz sluchac mnie, to ...

Maksymalnie zoptymalizowane? To może efekty itd., ale Skript nie jest doskonaly :p Ma byc bardzo prosty. I w tym jest dobry. Naprawde fajna sprawa z tym, prawda :p?

Skript nie ma zastapic pluginow, warto o tym pamietac.

I Skript nie bd lepszy od pluginu. Dostepne jest tylko to, co doda autor, albo jakis marny addon ...

Dziala o "poziom" nizej. Masa glupich rzeczy, przez ktore wszystko to musi przejsc ...

Zrobilbym to inaczej generalnie xd Dlatego planuje skonczyc pande. Wydajnosciowo ma gonic pluginy ;)

Ale pamietaj, Skript i tak jest wyczepisty! xP

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0

Wiem, zdecydowałem się na skript bo nie jest jakiś super wolny, a bardzo szybko się go pisze. Dodatkowo jako początkujący programista pewnie dawałbym wiele błędów wpływających na wydajność, a tak to plugin wszystko robi za mnie :D

A co do prostoty to mi aż tak na niej nie zależy. Osobiście nawet czasem mnie denerwuje fakt że muszę pisać bardzo często set .. to ... 

a nie mogę po prostu

.. = ...

 

A co do Pandy to nie za wiele wiem o tym projekcie. Możesz zdradzić coś więcej? To taka nowa wersja skript, tylko lepsza?

Kiedy premiera? czy nadal będziesz robił swój "marny" addon, a jak nie to aktualizował?

 

A jeszcze co do ilości funkcji to tak samo można napisać że plugin jest głupi bo opera się o to co da bukkit/spigot/tekkit :)

Bez API do nich nic raczej nie zrobisz. A jak teraz patrzę tak rzutem oka na API dla pluginów to jakoś w porówaniu ze skriptem nei wypada to jakoś źle.

 

I kolejne pytanie odnośnei tematu jeszcze. Czy opłacalne byłoby zrobienie serwera na skript? W sensie tyle on i addony i tyle. Nic więcej. Opłaca się takie coś? tzn Pomijam już WorldEdita i WorldGuarda, czy permissionSEX, bo to chyba nie ma sensu ich zamieniać, ale inne?

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0

Wiem, zdecydowałem się na skript bo nie jest jakiś super wolny, a bardzo szybko się go pisze. Dodatkowo jako początkujący programista pewnie dawałbym wiele błędów wpływających na wydajność, a tak to plugin wszystko robi za mnie :D

A co do prostoty to mi aż tak na niej nie zależy. Osobiście nawet czasem mnie denerwuje fakt że muszę pisać bardzo często set .. to ...

a nie mogę po prostu

.. = ...

A co do Pandy to nie za wiele wiem o tym projekcie. Możesz zdradzić coś więcej? To taka nowa wersja skript, tylko lepsza?

Kiedy premiera? czy nadal będziesz robił swój "marny" addon, a jak nie to aktualizował?

A jeszcze co do ilości funkcji to tak samo można napisać że plugin jest głupi bo opera się o to co da bukkit/spigot/tekkit :)

Bez API do nich nic raczej nie zrobisz. A jak teraz patrzę tak rzutem oka na API dla pluginów to jakoś w porówaniu ze skriptem nei wypada to jakoś źle.

I kolejne pytanie odnośnei tematu jeszcze. Czy opłacalne byłoby zrobienie serwera na skript? W sensie tyle on i addony i tyle. Nic więcej. Opłaca się takie coś? tzn Pomijam już WorldEdita i WorldGuarda, czy permissionSEX, bo to chyba nie ma sensu ich zamieniać, ale inne?

Tak, bardzo fajnie informuje, co mu nie pasuje itd xd

Panda (albo moze D#) xd

Ze Skript ma to związek ... Hymmm, pewnie tyle, ze beda to skrypty :p

A jak wypali, no to addon nie bd potrzebny xd

Bukkit/CraftBukkit wykorzystuje wszystko co srv bez modyfikacji klienta moze zrobic. I uwierz, jest tego sporo :D

Odnośnik do komentarza
Udostępnij na innych stronach

Nieaktywny
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

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