Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/volodya-lombrozo/oop-vs-procedural

Object-Oriented vs. Procedural: A Profiling Insight into Java Method Usage Patterns
https://github.com/volodya-lombrozo/oop-vs-procedural

Last synced: about 1 month ago
JSON representation

Object-Oriented vs. Procedural: A Profiling Insight into Java Method Usage Patterns

Awesome Lists containing this project

README

        

# Object-Oriented vs. Procedural: A Profiling Insight into Java Method Usage Patterns

[![DOI](https://zenodo.org/badge/785611469.svg)](https://zenodo.org/doi/10.5281/zenodo.11060929)

In contemporary software development, the extent to which Java applications
utilize object-oriented programming paradigms remains a subject of interest.
Given that some studies highlight the significant overhead of OOP, it is crucial
to examine how modern applications address this issue and determine if they tend
to shift towards procedural approach for enhanced performance. This study
evaluates the runtime behavior of 28 open source Java frameworks, with the help
of [YourKit](https://www.yourkit.com) profiler. We observed a dominant
percentage of instance methods and constructors compared to static methods. That
signifies a developer’s preference for the object-oriented approach much more
frequently than the procedural approach, despite its associated drawbacks.

## Structure of the Repository

This mono-repository contains the following modules:

- [cost-of-oop](cost-of-oop/README.md) - the main module with the profiling
results of 28 Java frameworks. This module contains all scripts used for
profiling each program. This includes the program startup procedures, the
initialization of the profiler, result exports, and testing scripts such as
those for Apache JMeter projects.
- [oop-statistics-filter](oop-statistics-filter/README.md) - the module that
holds the code that aggregates the profiling results received in the
[cost-of-oop](cost-of-oop/README.md) module. This module creates final CSV
files that might be used for further analysis.

## Citation

If you use this software in your research, please cite it using the following
[entry](CITATION.cff).