Avoiding unnecessary allocations
You should eliminate unnecessary allocations, especially when the size of an event is very large. For example:
event LargeEventWith1000Fields {} // field definitions omitted
integer i := 0;
while (i < 1000) {
route LargeEvent(0,0,i, ...); // bad
i := i + 1;
}
LargeEvent le := new LargeEvent(); // good
while (i < 1000) {
le.foo := i;
route le;
i := i + 1;
}