Saved in:
Bibliographic Details
Main Author: Yu, ZeHao
Format: Preprint
Published: 2025
Subjects:
Online Access:https://arxiv.org/abs/2512.03083
Tags: Add Tag
No Tags, Be the first to tag this record!
Table of Contents:
  • Effect handlers are increasingly prominent in modern programming for managing complex computational effects, including concurrency, asynchronous operations, and exception handling, in a modular and flexible manner. Efficient stack management remains a significant challenge for effect handlers due to the dynamic control flow changes they introduce. This paper explores a novel stack management approach using user-level overcommitting within the libseff C library, which leverages virtual memory mechanisms and protection-based lazy allocation combined with signal-driven memory commitment. Our user-level overcommitting implementation dynamically resizes stacks on-demand, improving memory utilization and reducing waste compared to traditional methods. We rigorously benchmark and evaluate this novel strategy against conventional fixed-size stacks, segmented stacks, and kernel-based overcommitting, using metrics such as context-switch latency, stack expansion efficiency, multi-threaded performance, and robustness under rapid stack growth conditions. Experimental results demonstrate that kernel-based overcommitting achieves an effective balance between performance and flexibility, whereas our user-level implementation, while flexible, incurs additional overheads, highlighting areas for optimization. This study provides a detailed comparative analysis of various stack management strategies, offering practical recommendations tailored to specific application requirements and operational constraints. Future work will focus on refining user-level overcommitting mechanisms, mitigating non-deterministic behaviors, and expanding benchmark frameworks to include real-world scenarios.