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?

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.

http://blog.plataformatec.com.br/2012/08/eager-loading-for-greater-good/