Maciej Latek and I are working on a revised version of the Schedule
which is somewhat more complex but is expected to perform better when
you have larger numbers of agents and a small number of orderings per
timestep. The downside is that it must use a Hashtable internally to
retain various Bags, and the hashing provides a constant overhead.
So it might or might not be faster for your application.
In MASON you can just drop in a replacement for your Schedule, like
public HeatBugs(long seed)
this(seed, 100, 100, 100);
schedule = new Schedule2(); // dump the old Schedule, use
So this means that we might offer Schedule2.java as an option rather
than replacing Schedule.java if people like it.
Let me know what you think -- did it make your simulation faster?