{'fraction_non_alphanumeric': 0.01829924650161464, 'fraction_numerical': 0.0, 'mean_word_length': 5.326530612244898, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Process-oriented Discrete-event Simulation in Java with Continuations - Quantitative Performance Evaluation

In discrete-event simulation the process interaction view is appreciated in many different contexts, as it often provides the cleanest and simplest way to express models. However, this view is harder to implement than the more common event-oriented view. This is mostly due to the need for the simulation engine to support in a efficient way the coroutine-like semantics needed to implement the simulation processes. A common solution adopted in many Java-based simulators is the use of system threads to provide coroutines. This paper shows that this choice leads to unnecessary overheads and limitations, and presents an alternative implementation based on continuations. For many common models the continuation-based simulator shows significant performance gains compared to the most popular open source Java engines.