Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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
- Host: GitHub
- URL: https://github.com/volodya-lombrozo/oop-vs-procedural
- Owner: volodya-lombrozo
- License: mit
- Created: 2024-04-12T08:40:28.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2024-04-24T15:53:25.000Z (8 months ago)
- Last Synced: 2024-05-01T23:12:12.584Z (8 months ago)
- Language: Java
- Size: 3.3 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Citation: CITATION.cff
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).