> I think you understand perfectly.
i'm coming around
> You said the keys are 128-bit (16 byte) values. You can store one key
> directly in a byte string of length 16.
yup
> So instead of using a vector of pointers to individual byte strings,
> you would allocate a single byte string of length
> {buckets x chain length x 16}
> and index it directly as if it were a 3-dimensional array [using
> offset calculations as you would in C].
i'm going to actually run my code later (probably in the morning). and then
grab some stats from the hash. take a look at the stats. give me some thoughts
on the above implementation after looking at the stats.
> Can you explain why the bignums are important. For a simple task like
> filtering a file, they would seem to be both a waste of memory and a
> performance drain wrt storing the key values as byte strings.
ok, true story. about 10 years ago i'm a student taking an intro to ai class we
have been assigned the 3x3 tile puzzle and 2 algorithms, ida* and a*. also, try
it on a 4x4. so i whip these out and am appalled by how slow the fn things are
but intrigued by what they can do and i'm just a puzzle kind of guy. btw, the
4x4 wasn't solvable by my stuff at the time. so i head to the chief's office
with my little bit of code. tell him it's way to slow. what do you think? he
takes 5 seconds to peruse the item and says "you're probably making too much
memory". side note, later i graded this class for that prof and the same
project. not a single student, including the ms and phd types, did anything
better than a vector of vectors of ints. so back to me, i'm thinking, how do i
cram 4 bits together so that there is absolutely no wasted space. i start
digging through the documentation and i find the bitwise stuff. i see
arithmetic shift and having no idea whether it will work or not i type into the
interface (arithmetic-shift 1 1000000). if we blow up, well we blow up big but
we didn't. i flipped everything in my project to bignum at that point. the
bignum stuff is massively faster than vector of vectors of ints and faster than
just a single vector of ints. lots of bignum is easy to implement, like the
hash. making a child state, not so much. i'm not married to bignums despite all
this.
> I've been programming for over 30 years, professionally for 23.
i was a programmer. dot com bought us as a brick and mortar back in '99 and the
whole shebang blew up 2 years later. idiots. anyway, been a stay at home dad
for the most part since then.
> have an MS in Computer Science
me too. that's the other piece of the most part from up above.
> (current-memory-use)
yup, tried that a while back didn't like what i saw. check this out:
> (current-memory-use)
581753864
> (current-memory-use)
586242568
> (current-memory-use)
591181736
> (current-memory-use)
595527064
does that work for you?
--
You received this message because you are subscribed to the Google Groups
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.