Fragment restructure#1
Conversation
KvGeijer
left a comment
There was a problem hiding this comment.
Looks good! I have added some comments. Here is just a summary of the comments.
The main thing I would like to have fixed is the arguments. Now you have to specify the data structure type for each run. However, the data structure is already known when you have selected an implementation, so selecting which one you want to run, and getting a panic if you select wrong, just seems a bit unnecessary.
Furthermore, I think it would be nice to change Queue to FifoQueue (or queue->fifo_queue) in some places. I leave this up to you how much to change. But it is a bit confusing if priority queues are covered by queue_benchmarks or not for example, as they also are queues.
Then we can further improve it by generalizing things, but maybe we can wait a few weeks with this until you are more comfortable with the code base.
|
Looked over it as well, I agree with KvGeijer on how command parsing should be changed but otherwise I think everything is good! |
|
Looked through it and it looks good 👍
|
|
Looks good to me now. We can further simplify the creation of benchmarks for new data structures later, but this is a great starting point it seems like. |
* Updated gitignore for Linux, Windows, Mac temporary files * Added basic rbfmem allocator without Drop * RBFMEM: New Time Value with support for indicating when a thread is finished * RBFMEM: Allocator frees its memory (including owned pointers) when it's safe. Still global timestamp linked list is never freed. * RBFMEM: Bug fix for timestamp free list in destructor * RBFMEM: fix timestamping ensuring array will fit all thread timestamps * RBFMEM: allocate initialized objects * RBFMEM Basic Michael Scott Queue example * RBFMEM: comments and more consistent style * RBFMEM: Simplifying interfacing with allocator (always allocate memory as a Box transformed into raw) * RBFMEM: Basic test and restructure of Michael Scott Queue * RBFMEM: iteratively dropping of free lists to prevent stack overflows from occurring * RBFMEM: Public API for indicating to other threads when it is safe to reclaim memory (useful for read only threads) * RBFMEM: Bug fix for memory leak when reusing memory * RBFMEM: fix unclear docstrings * RBFMEM: the free method is now properly marked as unsafe, since the programmer needs to meet some safety conditions
Restructure the repo to have different data structures and different parts of the benchmarking code for those data structures.
A new basic_priority_queue data structure has also been added.
The argument structure of the resulting binaries/CLI apps have also been reworked.
Some (most) descriptions of the README are now outdated. There is a new disclaimer that describes this.