The goal of this document is to compare the performances of some of the existing packages.

  • liqueueR 0.0.1 implements queues in pure R code which explains its slowness.
  • hash 2.2.6.3 uses R environments to create hash tables. It is known that regular R enviroments leak memory.
  • fastmap 1.2.0. The current implementation of collection::dict is actually inspired by it. However, a more efficient hash table library tommy is used.
  • hashtab of R 4.2.
  • We also compare to serveral base R implementations based on lists or environments, see here for details.

Queue

Stack

Deque

Priority Queue

Dictionary

Note that base::new.env suffers from memory leak issue. The performance gap between R environments and collections::dict is mainly attributed to the overhead in accessing the $get and $set methods from the dict object.

Ordered dict

Note that ordered_dict grows linearly in n but but list does not.