Какие-либо недостатки производительности GC.disable?
Есть ли обстоятельства, когда GC.disable
может ухудшить производительность? Это нормально, если я использую реальную оперативную память, а не подкачку памяти?
Я использую MRI Ruby 2.0, и, насколько я могу судить, он 64-битный, и я использую 64-битную 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 ответ
GC.disable отключит сборку мусора. Такие языки, как ruby, не имеют возможности освободить память без сборки мусора, потому что в отличие от C вы не вызываете освобождение памяти вручную.
Так что да, будет хит производительности. В конце концов вам не хватит памяти, так как такие объекты, как строки, будут создаваться и никогда не очищаться. Вы можете даже не отвечать за это, поскольку внутренняя механика используемых вами API-интерфейсов может создавать объекты.
Без лучшего понимания проблемы это, к сожалению, лучшее, что я могу предложить.