|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: May 2007
Città: Milano
Messaggi: 7103
|
[Gc] Java e Perl
Oggi in ufficio è nato un problema con la jvm e la allocazione di memoria.
Da lì è partita una discussione... Meglio il modo java o quello perl di Gc? Rigiro la domanda anche a voi.. Inviato dal mio LT22i con Tapatalk 2
__________________
Apple Watch Ultra + iPhone 15 Pro Max + Rog Ally + Legion Go |
![]() |
![]() |
![]() |
#2 |
Bannato
Iscritto dal: Mar 2008
Città: Villabate(PA)
Messaggi: 2515
|
Sono l'ultima persona che potrebbe rispondere a questa domanda in quanto non conosco bene(quasi per niente) né Java né Perl.
Ma della jvm me ne sono occupato nel contest17; qualcosina so. Di Perl invece non so proprio niente. Non sapevo nemmeno che girasse su una virtual machine. So solo che è stato velocissimo nel punto b.1 del contest 19. Anche la jvm s'è rivelata molto efficiente nel punto A del medesimo contest. Un confronto si potrebbe fare sulla quantità di memoria utilizzata. Ci vuole qualcuno che conosca bene e l'una e l'altra delle vm. ![]() |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: May 2007
Città: Milano
Messaggi: 7103
|
perl non va su vm.
Perl usa reference count mentre java si basa sulla nullità degli oggetti (in soldoni, diciamo) ![]()
__________________
Apple Watch Ultra + iPhone 15 Pro Max + Rog Ally + Legion Go |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Anche CPython usa il reference count, mentre PyPy, Jython e IronPython usano GC più evoluti (tipo generazionali).
Difficile dire quale sia l'approccio migliore. il RC è molto semplice da implementare in una VM, e rilascia immediatamente la risorsa quando questa non è referenziata (a meno di strutture cicliche complesse; comunque prima o poi verrà eliminata), quindi anche l'operazione di GC è abbastanza prevedibile. Viceversa, l'approccio usato nelle altre VM ha prestazioni complessivamente migliori, e compatta meglio la memoria, ma c'è lo svantaggio di occupare mediamente molta più memoria (perché si ritarda la sua liberazione) e che l'intervento del GC non è prevedibile e può mangiare una fetta consistente di CPU quando si attiva il processo, rendendo la VM non responsiva in quel momento (esistono approcci avanzati in sistemi multicore). P.S. Anche Perl usa una VM.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: May 2007
Città: Milano
Messaggi: 7103
|
vero
![]() Devo smettere di rispondere alle cose dopo 10 ore di lavoro :P
__________________
Apple Watch Ultra + iPhone 15 Pro Max + Rog Ally + Legion Go Ultima modifica di The_ouroboros : 15-02-2013 alle 05:54. |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: May 2007
Città: Milano
Messaggi: 7103
|
Approccio generazionale?
Inviato dal mio LT22i con Tapatalk 2
__________________
Apple Watch Ultra + iPhone 15 Pro Max + Rog Ally + Legion Go |
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
http://blogs.msdn.com/b/abhinaba/arc...ollection.aspx
http://c2.com/cgi/wiki?GenerationalGarbageCollection
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
![]() |
![]() |
![]() |
#8 | |
Senior Member
Iscritto dal: Oct 2001
Messaggi: 11471
|
Quote:
Codice:
for (int i = 0; i < 10000; ++i) { t = new String(t + new String("a")); } Quando un oggetto è creato viene messo in una zona del heap chiamata young generation che è quella che viene visitata più spesso dal gc. In genere gli oggetti che sono presenti in questa zona sono praticamente tutti rimossi ed i pochi che rimangono possono essere compattati in pochissimo tempo. Se un oggetto sopravvive ad un certo numero di passaggi viene promosso ad una zona chiamata tenure che contiene oggetti più vecchi che non ha senso controllare così spesso. |
|
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: May 2007
Città: Milano
Messaggi: 7103
|
grazie per la spiegazione.
Argomento interessante in effetti. Letture consigliate?
__________________
Apple Watch Ultra + iPhone 15 Pro Max + Rog Ally + Legion Go |
![]() |
![]() |
![]() |
#10 | |
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Quote:
![]() Puoi partire da qui -> http://www.ibm.com/developerworks/ja...ry/j-jtp10283/ per poi continuare a frugare con i link che trovi a fine articolo (l'articolo è il primo di una serie). Non preoccuparti per la data dell'articolo (2003), è un buon punto di partenza per approfondire l'arrgomento. Parte due -> http://www.ibm.com/developerworks/ja...ry/j-jtp11253/ E tre -> http://www.ibm.com/developerworks/ja...274/index.html Poi se non ti bastasse, beccati questa -> http://www.iecc.com/gclist/GC-faq.html
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) Ultima modifica di banryu79 : 15-02-2013 alle 11:39. |
|
![]() |
![]() |
![]() |
#11 | |
Bannato
Iscritto dal: Mar 2008
Città: Villabate(PA)
Messaggi: 2515
|
Quote:
http://www.ibm.com/developerworks/li...son/index.html http://www.ibm.com/search/csass/sear...&Search=Search ![]() ![]() |
|
![]() |
![]() |
![]() |
#12 | |
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Quote:
![]() -> http://www.ibm.com/search/csass/sear...f&lo=en&hpp=20 e questo è per Vincenzo, (sì lo so, è roba datata 2000 ma d'altronde tu 1968, ecchevuoi?) -> http://www.javaworld.com/jw-09-2000/jw-0915-lucene.html
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) Ultima modifica di banryu79 : 15-02-2013 alle 12:11. |
|
![]() |
![]() |
![]() |
#13 |
Bannato
Iscritto dal: Mar 2008
Città: Villabate(PA)
Messaggi: 2515
|
|
![]() |
![]() |
![]() |
#14 | ||
Bannato
Iscritto dal: Mar 2008
Città: Villabate(PA)
Messaggi: 2515
|
Quote:
Quote:
![]() ![]() |
||
![]() |
![]() |
![]() |
#15 |
Senior Member
Iscritto dal: May 2007
Città: Milano
Messaggi: 7103
|
grazie a tutti per aver aiutato con i vostri link un povero sysadmin/integratore
![]()
__________________
Apple Watch Ultra + iPhone 15 Pro Max + Rog Ally + Legion Go |
![]() |
![]() |
![]() |
#16 | |
Bannato
Iscritto dal: Mar 2008
Città: Villabate(PA)
Messaggi: 2515
|
Quote:
![]() ![]() |
|
![]() |
![]() |
![]() |
#17 |
Bannato
Iscritto dal: Mar 2008
Città: Villabate(PA)
Messaggi: 2515
|
Occhio!
L'ultima versione è la 5.16. Io avevo disgraziatamente installata la versione 5.14. Ma ho prontamente aggiornato la versione: ![]() scaricando i sorgenti da qui: http://www.perl.org/get.html#unix_like Una volta scompattato il tar.gz, portatevi all'interno dela cartella e date i seguenti comandi: Codice:
sh Configure -de make sudo make install http://perldoc.perl.org/index-tutorials.html http://www.perl.it//documenti/pod2it/index.html http://www.perl.it/documenti/corsoperl.html ![]() Ultima modifica di Vincenzo1968 : 15-02-2013 alle 16:48. |
![]() |
![]() |
![]() |
#18 |
Senior Member
Iscritto dal: May 2001
Messaggi: 12840
|
Perl non lo utilizzerei neanche se rimanesse l'ultimo linguaggio di programmazione al mondo
![]() Quindi il problema semplicemente non si dovrebbe neanche porre ![]() |
![]() |
![]() |
![]() |
#19 | |
Senior Member
Iscritto dal: Mar 2007
Città: Milano Beach
Messaggi: 1696
|
Quote:
![]() Da ignorante (e pythonista), aborro la sua sintassi. ![]()
__________________
~ Cthulhu: MacBookPro 13.3" ~ Azathoth: D510MO |
|
![]() |
![]() |
![]() |
#20 |
Senior Member
Iscritto dal: May 2007
Città: Milano
Messaggi: 7103
|
Lo pensavo anche io anni fa...poi il perl mi ha conquistato...
Inviato dal mio LT22i con Tapatalk 2
__________________
Apple Watch Ultra + iPhone 15 Pro Max + Rog Ally + Legion Go |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 15:23.