In our assignment 2 implementation, we had much problem scaling down for smaller number of circles, exactly because we can't preserve the ratio of time spent in phrases: either the pre-processing phrase or the rendering phrase takes too much time.

mperron

@cc For assignment 2 we didn't implement this but in the case where you have to scale a problem to data of different sizes (or some other differing property which affects performance) it often makes sense to take metrics of the data to decide on a strategy to employ. In other words, implement many strategies and decide what is best for the query you are given at runtime. This is common practice in database systems among many other examples.