У меня есть следующий класс:
class Myclass < ActionController::Metal
def myaction
huge_object.do_something
# etc.
end
private
def huge_object
@obj ||= begin
# allocate and initialize a ~10MB object
end
end
end
Что меня поразило, так это то, что даже на производстве каждый раз, когда вызывается myaction, объект выделяется. Более того, что-то содержит ссылку на это, поскольку GC не собирает это. Я сделал обходной путь, обернув объект в другом классе и включив Singleton в этот класс. Тем не менее, я хочу понять, что здесь происходит.