Java İşleyiş?

melih343

Zombi Katili
En iyi cevaplar
0
Merhabalar,
2 Sorum Olacaktı Yardımcı Olursanız Sevinirim..


1) Javanın Pluginleri Okuma Türü Nasıl Oluyor?
Aslında Sormak İstediğim Şu Pluginleri Ayrı Ayrı Oluşturmakmı Performans Açısından Daha İyi
Yoksa Tek Bir Pakette Toplamakmı?
Örnek:










2) Normalde Ben Skript Yazıyorum O Kadar Alışmışımki Genelde İstediğim Herşeyi Skript İle Yapabiliyorum Fakat
Java Skriptden Daha İyi Oldugu Yönünde Bir Sürü Yazılar Okudum.Ben Skripti YAML Türünden Yazıyorum
Performans Düşmesin Diye.Acaba YAML İle Kodlanmış Skript Sunucu Performansını Çok Etkiler mi?
Aylardır Skript Yazdıgım İçin Java Kullanmak Biraz Zor Geliyor(Çok Metod Vaaaar :))



Yardımcı Olan Arkadaşlara Şimdiden Teşekkürler..
 

melih343

Zombi Katili
En iyi cevaplar
0
Her eklenti(plugin) ayrı jar dosyalarında olur. Skript de bir eklenti olduğu için Java, Skript'ten daha hızlı çalışır.
ayrı eklenti yerine class eklesem farklı classlar oluştursam olmaz mı ?
skript yaml türü nasıl onu merak ediyorum çok bir sıkıntı olur mu?
 

CoffeeBeat

Zindev
En iyi cevaplar
0
Bukkit'i sunucunun çalıştığı ve işlediği bir program gibi düşün(ki zaten öyle).
Sunucu açılırken veyahut reload'dan sonra Bukkit plugins'in içindeki jarları depend
(Plugin.yml'de benim eklentimden önce bu eklentiler yüklensin demek için kullanılan bi tag)
taglarına göre sıralar.

Jarların yüklenme sırası ayarlandıktan sonra içindeki class dosyalarını çalışan Bukkit programına,
yani kendine enjekte eder.

Bu yüzden tek bir jar yada birden fazla jar arasında performans farkı yoktur çünkü işin sonunda hepsi Bukkit olur.
 

MegaCrafter

Obsidyen Madencisi
En iyi cevaplar
0
Tek jar ile birden fazla jar arasında kayda değer bir fark yok. Ancak düzen açısından her işlevin farklı jar içinde yapılması daha iyi.

YAML şeklinde yazılmış skript'ten kastını tam anlayamadım.
 

melih343

Zombi Katili
En iyi cevaplar
0
Bukkit'i sunucunun çalıştığı ve işlediği bir program gibi düşün(ki zaten öyle).
Sunucu açılırken veyahut reload'dan sonra Bukkit plugins'in içindeki jarları depend
(Plugin.yml'de benim eklentimden önce bu eklentiler yüklensin demek için kullanılan bi tag)
taglarına göre sıralar.

Jarların yüklenme sırası ayarlandıktan sonra içindeki class dosyalarını çalışan Bukkit programına,
yani kendine enjekte eder.

Bu yüzden tek bir jar yada birden fazla jar arasında performans farkı yoktur çünkü işin sonunda hepsi Bukkit olur.
teşekkürler birde skriptdeki yaml nin faydası nedir çünkü oda java gibi veri güncelleyebiliyor sonuçta skript çalışırken javadanda destek alıyor diye biliyorum bu çok sıkıntı yapar mı

Tek jar ile birden fazla jar arasında kayda değer bir fark yok. Ancak düzen açısından her işlevin farklı jar içinde yapılması daha iyi.

YAML şeklinde yazılmış skript'ten kastını tam anlayamadım.
örneğin skriptde
{%player%.test} to 0 olsun

bunu sonrada add 1 to ..... diye artırıyoruz fakar skript içindeki variable şişiyor ben yaml ile yaparak güncelliğini şişmemesini sağlıyorum
performans açısından çok fazla düşüş olur mu bunu sormak istedim
 

CoffeeBeat

Zindev
En iyi cevaplar
0
YAML konusunu görmedim ondanda biraz bahsetmek isterim;

Skript'in normal veri saklama şekli(csv) YAML'dan çok daha performanslıdır çünkü sadece anahtar değer şeklindedir.

Skript'i performans özürlüsü yapan en büyük husus ister YAML olsun,ister MYSQL olsun ister CSV olsun HER DEĞİŞKENİ RAM'DA TUTMASIDIR.

Mesela şöyle anlatıyım;benim bi sınıf eklentim var.
Her oyuncunun sınıf bilgilerinin saklandığı objeler var.
Yani oyuncu başına bir tane o ram'daki objeden olması gerek.
Fakat benim sunucuma girip çıkan ve o verinin oluşmasına neden olan 50.000 oyuncu var.
Yani elimde 50.000 tane sınıf bilgisi var.
50.000 verinin hepsini Java ve YAML ile yüklesem bile benim sunucum ölür.

Hadi onu geçtik direk Java Serialization(Javanın Ram'daki objeleri bytecode olarak saklaması için kullanılan bi modül) ile serialize edip saklasam ve 50.000 veriyi eklenti açılırken yüklesem gene benim sunucum ölür.

Peki bunun çözümü ne ? Veri yönetimi.
Skript'in yapamadığı, yapsa bile verimsiz olacağı binlerce şeyden biri.
50.000 veriyi yüklemek yerine bi klasöre 50.000 veriyi UUID'lerinden oluşan bir isim şeması ile kaydetsem;


Daha sonra bir oyuncu giriş yaptığında eğer UUID'si bu klasörde varsa veriyi RAM'a yüklesem yoksada RAM'da yeni bir obje oluştursam ve oyuncu çıkarkende RAM'daki objeyi bu klasördeki dosyanın üzerine kaydetsem ve veriyi RAM'dan silsem sorun çözülür mü ?

ÇÖZÜLÜR EFENİM.
 

melih343

Zombi Katili
En iyi cevaplar
0
Java ile ilgili yeterince tecrubeye sahip degilim uuid deyince zaten hep koptum inaniyorumki ilerde javayi kavrayacagim fakat tam olarak demek istedigin su mu?
Skript ve java performans bakimindan sorun yaratiyor bu sorun otomatik duzeltilmiyor kendin sistem kuracaksin ve java ile bu sistemi kurabilir skript ile kuramazsin
 

CoffeeBeat

Zindev
En iyi cevaplar
0
Java ile ilgili yeterince tecrubeye sahip degilim uuid deyince zaten hep koptum inaniyorumki ilerde javayi kavrayacagim fakat tam olarak demek istedigin su mu?
Skript ve java performans bakimindan sorun yaratiyor bu sorun otomatik duzeltilmiyor kendin sistem kuracaksin ve java ile bu sistemi kurabilir skript ile kuramazsin
Java ile kendi yolunu çizebilirisin.Bir şey yanlışsa,bu yanlış diyip düzeltebilirsin.
UUID'de her oyuncunun aldığı bir veri.
Bütün UUID'ler birbirinden farklıdır ve Premium oyunculara sadece bir defa verilir.
Sunucu Cracked ise cracked oyunculara rasgele bir UUID verilir.
Yani oyuncu mojang'dan ismini değiştirse bile UUID'si hep aynı kalacaktır.
Oyuncuları ayırt etmek için oyuncu ismi yerine UUID kullanmak her zaman daha avantajlıdır.
Örnek verecek olursak offline bir oyuncunun verilerine sadece UUID'si ile erişebilirsin.
Linki görebilmek için üye olmanız gerekiyor. Giriş yap veya üye ol.


Kısaca anlatmak gerekirse Skript herşeyi yapabileceğin uçsuz bucaksız bir denizse, Java H2O'dur
 

melih343

Zombi Katili
En iyi cevaplar
0
Java ile kendi yolunu çizebilirisin.Bir şey yanlışsa,bu yanlış diyip düzeltebilirsin.
UUID'de her oyuncunun aldığı bir veri.
Bütün UUID'ler birbirinden farklıdır ve Premium oyunculara sadece bir defa verilir.
Sunucu Cracked ise cracked oyunculara rasgele bir UUID verilir.
Yani oyuncu mojang'dan ismini değiştirse bile UUID'si hep aynı kalacaktır.
Oyuncuları ayırt etmek için oyuncu ismi yerine UUID kullanmak her zaman daha avantajlıdır.
Örnek verecek olursak offline bir oyuncunun verilerine sadece UUID'si ile erişebilirsin.
Linki görebilmek için üye olmanız gerekiyor. Giriş yap veya üye ol.


Kısaca anlatmak gerekirse Skript herşeyi yapabileceğin uçsuz bucaksız bir denizse, Java H2O'dur
Peeki bu dedigin ram olayi ne oluyor benim basit dusunuyorum genel olarak ornegin skript yazarken oyuncuya ait yml ve onun icine oyuncuya ait bilgiler bulunduruyordum java icinde bu mantikla hareket edecegim uuid den cok performansini dusunuyorum
 

CoffeeBeat

Zindev
En iyi cevaplar
0
Peeki bu dedigin ram olayi ne oluyor benim basit dusunuyorum genel olarak ornegin skript yazarken oyuncuya ait yml ve onun icine oyuncuya ait bilgiler bulunduruyordum java icinde bu mantikla hareket edecegim uuid den cok performansini dusunuyorum
İyi bir geliştirici olmak için çok fazla tecrübeye ihtiyacın var.
Performans özürlüsü kodlar yazsan bile Java farkettirmeyecektir zaten.
Hani çok abartılı şeyler yazsan bile javanın kodunu çalıştırması 1 milisaniye civarında olacaktır.
Şimdilik bildiğin gibi yaz.
Bir süre sonra bildiğini de unutacaksın zaten.
İyi kabuslar, kolay gelsin.
 
Üst