You could do a partconv to convert to the old format, and then see if
it is any faster with the old format. Also, make sure you are using
the partio particle iterators if you can which are a lot faster than
the data calls (which are virtual). By contrast the particle
iterators are far fewer virtual calls amortized over many trivial
inlined non-vritual things. However, the bottom line is that reading
particles incurs a copy and there is no way to really avoid this
without writing a custom back end that used the file in place using
mmap. This could be an interesting way to go, and in fact, that is why
ParticlesSimple is called that. You can write a custom back end that
plugs itself in when you read certain formats. Hope this makes some
sense.
We usually have not been using millions of particles with interactive
visualization, but we have rendered shots that have had up to about a
million per particle set.
-Andy