Too big classes

Hello Folks,

Have a doubt. I am in a project where Model gets bigger and bigger. Yes
we
are breaking up into concerns, but what we are not sure of is weather
this
code will get included in RAM when we call say b = Book.new or
something,
thus making the Rails app occupy more memory.

The most bulk of the model come from adding tasks that runs in
background
(which will be called like book.scan ), like scanning a book and
creating
text from OCR. So Should I have these background tasks as separate class
somewhere in lib, or is it okay to have it in concerns?

Will ruby load all the functions of a model into RAM when its called or
it
loads a function only if its called?


Karthikeyan A K

AFAIK , On production mode, rails has a default configuration called
“eager_load” ( config.eager_load ) . This loads all the classes into the
RAM for faster access( cache ) . But for b1 = Book.new, b2 = Book.new ,
The
class and methods are not loaded twice. The object is created and
occupies
RAM.

Also note that how huge is your RAM vs how huge is your code base and
the
libraries your app loads. take a look at this to understand more about
this.