  Cloud-based software-as-a-service (SaaS) have gained popularity due to their
low cost and elasticity. However, like other software, SaaS applications suffer
from code smells, which can drastically affect functionality and resource
usage. Code smell is any design in the source code that indicates a deeper
problem. The software community deploys automated refactoring to eliminate
smells which can improve performance and also decrease the usage of critical
resources. However, studies that analyze the impact of automatic refactoring
smells in SaaS on resources such as CPU and memory have been conducted to a
limited extent. Here, we aim to fill that gap and study the impact on resource
usage of SaaS applications due to automatic refactoring of seven classic code
smells: god class, feature envy, type checking, cyclic dependency, shotgun
surgery, god method, and spaghetti code. We specified six real-life SaaS
applications from Github called Zimbra, OneDataShare, GraphHopper, Hadoop,
JENA, and JAMES which ran on Openstack cloud. Results show that refactoring
smells by tools like JDeodrant and JSparrow have widely varying impacts on the
CPU and memory consumption of the tested applications based on the type of
smell refactored. We present the resource utilization impact of each smell and
also discuss the potential reasons leading to that effect.
