View Full Version : Open source
Qualcuno di voi partecipa a qualche progetto open source?
Vash1986
15-09-2006, 22:58
Si, io sto creando una fork di RunUO, un emulatore di Ultima Online open source, sotto licenza GPL, scritto (ahimè) in C#.
Vash1986
16-09-2006, 10:18
Non ti piace il c#?
E' sublime, molto meglio del Java.
Ma solo uno scemo sceglierebbe un linguaggio con Garbage Collector per un server di videogame. Per rendere l'idea, se ci sono tanti ma tanti utenti, con tanti milioni di oggetti, ogni 20 minuti il server arriva a 3gb di ram e poi impiega 16s a fare pulizia col GC, tempo nel quale il server rimane fermo =|
Ammesso che puoi permetterti 4gb di ram :P
Inoltre così precludono la possibilità di usarlo su linux (non tutti i programmi C# possono essere compilati su Mono).
...
E' un bel problema. Non pensavo che il garbace collector del c#richiedesse così tanto tempo e risorse...Beh, forse perchè non ho mai dovuto affrontare un problema come il tuo...
Vash1986
17-09-2006, 11:28
...
E' un bel problema. Non pensavo che il garbace collector del c#richiedesse così tanto tempo e risorse...Beh, forse perchè non ho mai dovuto affrontare un problema come il tuo...
E' un caso particolare di quest'applicazione. A parte che arriva a 3gb, ci sono anche migliaia di oggetti da finalizzare che si generano in pochi minuti.
Per rendere l'idea, se ci sono tanti ma tanti utenti, con tanti milioni di oggetti, ogni 20 minuti il server arriva a 3gb di ram e poi impiega 16s a fare pulizia col GC, tempo nel quale il server rimane fermo =|
Non conviene allora forzare una collection ogni (ad esempio) 30 secondi / un minuto ?
Oppure finalizzare ogni oggetto quando non serve più?
La gc è un servizio in più, non sei obbligato ad aspettare che si attivi.
Vash1986
17-09-2006, 14:44
Non conviene allora forzare una collection ogni (ad esempio) 30 secondi / un minuto ?
Dovrei provare, ma purtroppo si deve "sperimentare" su server di grosse e piccole dimensioni.
Oppure finalizzare ogni oggetto quando non serve più?
La gc è un servizio in più, non sei obbligato ad aspettare che si attivi.
Se chiami .finalize() di un oggetto non viene deallocato.
Esatto il garbage collector lo puoi far andare quando ti pare,se impiega tutto quel tempo per fare il dovere è stato progettato male.
Tralascio il fatto che il c# è molto meglio del java per non scendere in inutili flame.
Vash1986
17-09-2006, 19:34
Esatto il garbage collector lo puoi far andare quando ti pare,se impiega tutto quel tempo per fare il dovere è stato progettato male.
Tralascio il fatto che il c# è molto meglio del java per non scendere in inutili flame.
E' vero che posso forzarlo, ma non posso decidere quando NON farlo andare. Ossia potrebbe anche azionarsi in automatico da solo.
Certo, se lo forzo ogni tot minuti, è improbabile che poi si azioni da sè.
Ma sta di fatto che potrebbe non essere conveniente forzarlo ogni tot minuti in certi server molto affollati. Personalmente, nella mia fork di RunUO, lo attivo durante il world save (visto ke tanto il mondo si deve fermare).
Uno shard su cui gioco invece lo attiva appena arriva a 3gb di ram occupata.
...
E' un bel problema. Non pensavo che il garbace collector del c#richiedesse così tanto tempo e risorse...Beh, forse perchè non ho mai dovuto affrontare un problema come il tuo... mavà, cazzate; ha solo ripetuto a manetta una nostra vecchia discussione :P
ha persino ripetuto la cazzata dei 3 GB, che su Windows non si possono allocare perché 3 GB è la dimensione massima dell'userspace dalla quale però devi togliere qualche centinaio di mega occupati dal framework e limitare il tutto con la politica di gestione quote :Prrr:
EDIT: e continua a dirla sta cazzata; e mica si spreca due secondi ad andare a vedere un attimo quanto occupa realmente, no :Prrr:
Vash1986
17-09-2006, 22:20
Infatti questo è esattamente l'argomento della nostra "vecchia" discussione. Il software che funge da server per Ultima, di cui ti avevo accennato nell'altro topic, di che ti stupisci?
Io non so di teoria quanto sai tu. Ma ho esperienza con questo software. Tu sputi sentenze senza sapere come stanno le cose purtroppo, e flammi anche.
Io ho le prove, posso anche fornirti gli screenshot del server dove giro, 16 secondi di memory cleaning.
Vuoi parlare con l'admin? Ti dirà che il processo arriva ad occupare quasi 3gb, dopodichè forzano il GC.
Vuoi vedere che RunUO può occupare tanti giga di ram? Guarda
http://www.runuo.com/forums/showthread.php?t=54813
http://www.runuo.com/ryan/4000.PNG
Vash1986
17-09-2006, 22:29
ma usi un windows a 64 bit?
E' il server su cui gira lo shard di ultima online UOGamers.
E' un quad core 64bit con 8gb di ram, gira con win2003 server.
Sapevo anch'io del limite di 3gb, ma non so se sussiste pure su windows 2003. Ed è infatti per questo che i gestori del mio shard forzano il Garbage Collector a 3gb.
mavà, cazzate; ha solo ripetuto a manetta una nostra vecchia discussione :P
ha persino ripetuto la cazzata dei 3 GB, che su Windows non si possono allocare perché 3 GB è la dimensione massima dell'userspace dalla quale però devi togliere qualche centinaio di mega occupati dal framework e limitare il tutto con la politica di gestione quote :Prrr:
EDIT: e continua a dirla sta cazzata; e mica si spreca due secondi ad andare a vedere un attimo quanto occupa realmente, no :Prrr:
Per favore basta con queste polemiche...
ma usi un windows a 64 bit? se lo usasse i 3 giga di limite massimo arriverebbero a quasi 16 tera, e avendo 8 giga fisici non starebbe a farsi tanti problemi sulle ottimizzazioni maniacali...
Per favore basta con queste polemiche... ma che ci posso fare se il livello sella sezione col tempo cala, prima non avevo neanche modo di farle tutte ste polemiche... :|
comunque sto migliorando: nell'ultimo post (anzi negli ultimi due) neanche una parolaccia :D
appropos: Vash1986, nel prendere lo screenshot hai attivato la tab sbagliata (la memoria virtuale occupata dallo shard si vede in "Processi", non in "Performance"); e anziché premere Stamp e poi ritagliare la finestra con Paint, la prossima volta fai Alt+Stamp ;)
Vash1986
18-09-2006, 09:42
appropos: Vash1986, nel prendere lo screenshot hai attivato la tab sbagliata (la memoria virtuale occupata dallo shard si vede in "Processi", non in "Performance"); e anziché premere Stamp e poi ritagliare la finestra con Paint, la prossima volta fai Alt+Stamp ;)
E che ci posso fare io se fanno lo screen di quella tab? Mica l'ho fatto io, se guardi l'ha fatto l'amministratore del forum di RunUO.
Ma ti pare che ho a casa un quad core io??? :D
se lo usasse i 3 giga di limite massimo arriverebbero a quasi 16 tera, e avendo 8 giga fisici non starebbe a farsi tanti problemi sulle ottimizzazioni maniacali...
Loro infatti non se ne fanno problemi, sono gli stessi sviluppatori di RunUO che hanno preso quel server con 8gb.
I problemi me li faccio io, visto che sto facendo la fork e voglio che questa possa girare senza il pc della NASA.
Mi sembra che il thread parli di tutt'altra cosa... Cerchiamo di stare in topic ;)
Vash1986
18-09-2006, 09:56
Mi sembra che il thread parli di tutt'altra cosa... Cerchiamo di stare in topic ;)
Beh RunUO è open source :p
con java + eclipse + encapsulate field+ mezz'ora di refactoring(t'ho un ora) e trasformavi i boolean in byte con flag :)
cerca se in visual studio cè qualche strumento di refactoring simile(sempre che non abbiamo usato zone unsafe con puntatori e casting strani, al che non garantirei)
per i byte da incastrare in long o cose simili il principio sarebbe simile, ma si potrebbero verificare problemi di casting vari.
Marco Giunio Silano
18-09-2006, 11:32
Qualcuno di voi partecipa a qualche progetto open source?
ma avevo scritto codice che "partiva" da altro codice gpl, di conseguenza era gpl pure quello, ma non so com'è andata a finire, xè ho cambiato azienda e chi ha preso in mano il lavoro non ho idea di cosa ne abbia fatto.
Però era stato tutto inserito sul forum di discussione di linux.org
Se chiami .finalize() di un oggetto non viene deallocato.
In java si puo' forzare la gc; non conosco il c#, ma se si puo' forzare potresti
eseguirla, che so, ogni 100 oggetti "buttati via", ci mettera' molto meno di 16 secondi.
Vash1986
19-09-2006, 09:58
In java si puo' forzare la gc; non conosco il c#, ma se si puo' forzare potresti
eseguirla, che so, ogni 100 oggetti "buttati via", ci mettera' molto meno di 16 secondi.
Si, e su un piccolo server va benissimo. Su un server grande ci sono 100 oggetti buttati via in meno di 2 secondi. Capirai che forzare il GC ogni 2 secondi renderebbe il gioco laggoso, anche solo per 100 oggetti.
Vabbe', facciamo 10000, era solo un esempio.
jappilas
19-09-2006, 10:51
Qualcuno di voi partecipa a qualche progetto open source?
Diamonds è open source :D
Diamonds è open source :D
Hai ragione :D
DanieleC88
23-09-2006, 12:48
Diamonds è open source :D
Be' tecnicamente è public domain, è anche di più. :p
jappilas
23-09-2006, 13:16
OT: se vedo che lo sviluppo di DC continua a stagnare, lascio da parte il mio progetto di image editing e a fine mese avvio il fork "Diamonds Elfic Intelligence Version" :O
DanieleC88
23-09-2006, 14:19
OT: se vedo che lo sviluppo di DC continua a stagnare, lascio da parte il mio progetto di image editing e a fine mese avvio il fork "Diamonds Elfic Intelligence Version" :O
Be', nessuno te lo può impedire, ma speriamo che Diamonds torni ai ritmi vecchi. ;)
l'avevo detto che mi mancavano 3 esami; lasciatemi lavora' che ho quasi finito -.-'
poi torno su DC, ma intanto se sentite la mancanza dei vecchi ritmi nulla vi impedisce di continuare da soli a dargli qualche sistemata eh... perlomeno chi non fa l'università, e quindi non ha esami come me.
DanieleC88
23-09-2006, 16:25
poi torno su DC, ma intanto se sentite la mancanza dei vecchi ritmi nulla vi impedisce di continuare da soli a dargli qualche sistemata eh... perlomeno chi non fa l'università, e quindi non ha esami come me.
:mbe:
Se ne fossi stato in grado avrei fatto da solo l'intero lavoro fino alla 1.0 definitiva. Qualche ritocco qua e là si può fare ma è tutto il team che deve tornare attivo. E ci vuole un leader severo (messaggio subliminale: fek, torna e pure presto!).
fek e jocchan torneranno, ne sono convito; li faccio tornare io non appena finisco l'ultimo esame :D
jappilas
23-09-2006, 22:46
fek e jocchan torneranno, ne sono convito; li faccio tornare io non appena finisco l'ultimo esame :D
anche se non sembra, io sto aspettando il ritorno del team con estrema ansia :D
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.