sam.saffron / gmail.com wrote:
> An artificial test is: 
> 
> @retained = []
> 
> MAX_STRING_SIZE = 100
> 
> def stress(allocate_count, retain_count, chunk_size)

Note: I think we should seed the RNG to a constant to have
consistent data between runs

    srand(123)

>   chunk = []
>   while retain_count > 0 || allocate_count > 0
>     if retain_count == 0 || (Random.rand < 0.5 && allocate_count > 0)
>       chunk << " " * (Random.rand * MAX_STRING_SIZE).to_i
>       allocate_count -= 1
>       if chunk.length > chunk_size
>         chunk = []
>       end
>     else
>       @retained << " " * (Random.rand * MAX_STRING_SIZE).to_i
>       retain_count -= 1
>     end
>   end
> end

Sam: Thank you!

I think we should integrate this test into the mainline benchmark suite.
Perhaps even provide an option to run with all the existing tests with
the big @retained array.

ko1: what do you think?