> 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 racket-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.