There is obvious overhead related to the use of
Classes which isn't present with Modules.
Every module has exactly one instance and does not need
to be created or assigned to a variable. A Class object
must be instantiated, and when that happens within a
piece of code that limits the object's scope/lifetime
the class object gets created and destroyed repeatedly.
The class object's constructor and destructor get
invoked every time.
The additional overhead for a class vs. a module may
not be apparent to human perception when it occurs a
limited number of times - such as once. But when
that time overhead is multiplied many times over the
disparity is magnified so that it becomes perceptible.
- Wayne