Experimental Study of Compressed Stack Algorithms in Limited Memory Environments

Jean-François Baffier, Yago Diez, Matias Korman

The {\em compressed stack} is a data structure designed by Barba {\em et al.} (Algorithmica 2015) that allows to reduce the amount of memory needed by an algorithm (at the cost of increasing its runtime). In this paper we introduce the first implementation of this data structure and make its source code publicly available. Together with the implementation we analyze the performance of the compressed stack. In our synthetic experiments, considering different test scenarios and using data sizes ranging up to $2^{30}$ elements, we compare it with the classic (uncompressed) stack, both in terms of runtime and memory used. Our experiments show that the compressed stack needs significantly less memory than the usual stack (this difference is significant for inputs containing $2000$ or more elements). Overall, with a proper choice of parameters, we can save a significant amount of space (from two to four orders of magnitude) with a small increase in the runtime ($2.32$ times slower on average than the classic stack). These results holds even in test scenarios specifically designed to be challenging for the compressed stack.

Knowledge Graph

arrow_drop_up

Comments

Sign up or login to leave a comment