2013-06-19 11 views
6

Ci sono circostanze in cui lo GC.disable può degradare le prestazioni? Va bene fare, a patto che io stia usando la RAM vera invece della memoria di scambio?Eventuali svantaggi delle prestazioni di GC.disable?

che sto usando la risonanza magnetica Rubino 2.0, e per quanto posso dire, è a 64 bit, e utilizzando un 64 bit di Ubuntu:

ruby 2.0.0p0 (2013-02-24 revision 39474) [x86_64-linux] 

Linux [redacted] 3.2.0-43-generiC#68-Ubuntu SMP Wed May 15 03:33:33 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux 
+1

Immagino che dipenda dalla tua applicazione, dovresti fare test delle prestazioni e profiling della memoria con e senza gc abilitato per avere qualche base per fondare la tua decisione su – jethroo

risposta

1

gc.disable disabilita garbage collection. Lingue come Ruby non hanno modo di liberare memoria senza garbage collection perché diversamente da C non si richiama manualmente un deallocator di memoria.

Quindi sì, ci sarà un successo in termini di prestazioni. Alla fine esaurirai memoria quando oggetti come le stringhe continueranno a essere creati e mai ripuliti. Potresti anche non essere responsabile in quanto i meccanismi interni delle API che utilizzi potrebbero generare oggetti.

Senza una migliore comprensione del problema, questo è, purtroppo, il meglio che posso offrire.

Problemi correlati