Studi Komparasi Kinerja Object-Relational Mapping Berdasarkan Implementasi Data Source Architectural Pattern - Muhammad Rezy Anshari; Redi Ratiandi Yacoub; Herry Sujaini; Bomo Wibowo Sanjaya; Eva Faja Ripanti (Departemen Teknik Elektro dan Teknologi Informasi, Fakultas Teknik, Universitas Gadjah Mada, 2025)
Object-relational mapping (ORM) is a technique that maps in-memory objects and tables in the database, implementing data source architectural patterns (DSAP), namely Data Mapper and Active Record. These patterns require comparison due to performance difference indications and their significant roles in a system’s business processes. This study aims to compare and analyze execution duration and memory consumption quantitatively, and functions influencing them in the ORM, utilizing Data Mapper and Active Record. The objects were Doctrine (Data Mapper) and Eloquent (Active Record). The performance profiling in the ORM was conducted as a library rather than a framework. This profiling encompassed create, read, update, and delete (CRUD) and lookup operations based on specified measurement metrics, conducted using variations in the number of database records. The profiling process was automated using a script, leveraging a combination of Xdebug and Apache Benchmark. The analysis employed using Kcachegrind and big O notation, resulting in performance graphics, relative percentage differences, and functions’ contributions to the performance. Results showed that memory consumption outperformed Data Mapper. Data Mapper was superior in execution duration in most operation combinations and metrics. Function groups of database transactions, object serialization, and retrieval records were the primary contributors to the performance. Object and database synchronizations became additional contributors to Active Record. The complexity of the largest contributor functions in Data Mapper was higher than that of Active Record. Future studies can utilize automation concepts in the profiling process and substitute Xdebug according to the requirements of the programming languages used by the ORM.