Return to search

Design and Implementation of a Graceful Degradation Approach for Polymorphic Role Invocation in Object Teams

In the ever-evolving world of modern software engineering, dynamic and context-dependent adaptability becomes increasingly important. A promising new paradigm that has been proposed is role-oriented programming, an extension of object-oriented programming which allows collaborative relationships of objects to be modeled. Through the introduction of roles and contexts, the behavior of objects can be adapted at run-time via addition or modification of attributes and methods. This dynamism however incurs a high overhead, especially in the area of role function invocation. Recent research has found a remedy inspired by polymorphic inline caches, allowing reuse of so-called dispatch plans which encode the steps directly required for the execution of adaptations. With this optimization, an average speedup of 4.0× was achieved in static contexts and 1.1× in variable contexts. Still, performance sharply drops off at a certain degree of volatility as a consequence of cache capacity exhaustion. This thesis presents a fallback mechanism that is to be used at highly variable call sites which would normally cause a significant slowdown with the new approach. In addition, an optimized reuse mechanism is proposed, further improving execution efficiency. Evaluation through benchmarking shows complete elimination of the aforementioned overhead, meaning a speedup of 16.5×, while the previously achieved speedup is maintained.

Identiferoai:union.ndltd.org:DRESDEN/oai:qucosa:de:qucosa:75893
Date07 September 2021
CreatorsKummer, Cornelius
ContributorsCastrillon, Jeronimo, Götz, Sebastian, Schütze, Lars, Technische Universität Dresden
Source SetsHochschulschriftenserver (HSSS) der SLUB Dresden
LanguageEnglish
Detected LanguageEnglish
Typeinfo:eu-repo/semantics/publishedVersion, doc-type:bachelorThesis, info:eu-repo/semantics/bachelorThesis, doc-type:Text
Rightsinfo:eu-repo/semantics/openAccess

Page generated in 0.0021 seconds