If anyone cares these are my results. I ran numerous tests using GetFullState, Datawindow.Data, Object.Data, GetChanges, PSR, Data.Storage = Disk and combinations between them. If you keep everything in memory then the best option is GetChanges. If you want to hit the disk the best option is PSR with Storage = Disk.