Ok, so I was thinking about how to speed up my opengl application, and remembered hearing something about interleaving array data. To my simple mind it seemed that when I pass attributes to a shader in separate buffer objects some kind of jumping around in the video cards' memory would occur, so if I interleaved the data for every vertex then this should provide the benefit of locality of reference like in a cache, and things should speed up.
However after some experimenting it cause a decline of 2 frames per second in my overall speed. So WHY does this happen? I'm clearly drinking from the wrong bottle of GL goodness.