From: Leopold Toetsch <[EMAIL PROTECTED]> Date: Sun, 22 May 2005 16:58:00 +0200
Bob Rogers wrote: > Below please find an additional test case for t/pmc/hash.t that defines > >>50K keys, while checking that earlier entries are still present. This > > takes about 0.8 sec on my 1.8GHz AMD box, tunable by increasing I22. Is > this the sort of thing you had in mind? Yeah. Thanks. It's OTOH failing here, I've too look at it, then it'll go in. Another one which additionally deletes keys would be great. This patch adds deletion to the same case. Testing also caught a missing label in the original version, for a branch that was never taken. -- Bob Rogers http://rgrjr.dyndns.org/ ------------------------------------------------------------------------ Index: t/pmc/hash.t =================================================================== --- t/pmc/hash.t (revision 8160) +++ t/pmc/hash.t (working copy) @@ -312,6 +312,7 @@ print_value: S2 = hash[S1] print S2 +print_end: print "\n" key_index = key_index + step count = count - 1 @@ -319,6 +320,23 @@ ret: .end +.sub delete_multiple_keys prototyped + .param pmc hash + .param int key_index + .param int step + .param int count + +again: + if count <= 0 goto ret + S0 = key_index + S1 = concat "key", S0 + delete hash[S1] + key_index = key_index + step + count = count - 1 + goto again +ret: +.end + .sub _main @MAIN new P30, .Hash print "round 1\n" @@ -338,6 +356,10 @@ set_multiple_keys(P30, I22, I29, I22) print_multiple_keys(P30, I29, I30, I20) print_multiple_keys(P30, I22, I30, I20) + print "round 4\n" + delete_multiple_keys(P30, I22, I29, I22) + print_multiple_keys(P30, I29, I30, I20) + print_multiple_keys(P30, I22, I30, I20) print "done.\n" .end CODE @@ -359,6 +381,13 @@ key50000 => value50000 key51000 => value51000 key52000 => value52000 +round 4 +key1 => value1 +key1001 => value1001 +key2001 => value2001 +key50000 => (undef) +key51000 => (undef) +key52000 => (undef) done. OUTPUT