Какие-либо недостатки производительности 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-интерфейсов может создавать объекты.

Без лучшего понимания проблемы это, к сожалению, лучшее, что я могу предложить.

Другие вопросы по тегам