objcache: Actually bump allocate
authorJack Miller <jack@codezen.org>
Sat, 27 Aug 2016 17:00:38 +0000 (12:00 -0500)
committerJack Miller <jack@codezen.org>
Sat, 27 Aug 2016 18:31:38 +0000 (13:31 -0500)
commit501583c14d08adf0d6e90bc54f9abc1b1c953acc
tree0eedfb719934db37945ef0ef7a21e360bf2d0a80
parent66503f246d843043028d2d782064703749a03379
objcache: Actually bump allocate

The intention of this data structure was always to be high performance,
but of course early on stability is more important so it's been acting
as a glorified bitmap. However, now that we're using objcache in our
interpreter/compiler, it's rather important to be quick.

I added the TSC support to get a better idea on the performance, and
still need to characterize non-sequential, and freeing BUT preliminary
numbers:

bitmap objcache: 100000 sequential allocs in 145 seconds
bump objcache:   100000 sequential allocs in 92 milliseconds

Which isn't too surprising considering the bitmap objcache is worse than
the worst case of the bump objcache implementation, but nonetheless a
1500x speedup is nice.
TODO
include/objcache.h
mm/objcache.c