I was just profiling our game and noticed that PersitentDataManager.AppendItemData() was taking a long time even though we have "Include All Item & Quest Data" deselected.
When includeAllItemData is false, it's still supposed to run the code, but it will only record quest statuses and quest tracking info. Do you need to save quest states? Perhaps there should also be an option to save no item & quest data?
Are you sure AppendItemData() is the culprit? Usually it's the conversations, especially SimStatus.
Ahh gotcha! I misunderstood what that checkbox was doing. I shouldn't say "very" expensive, but I was seeing it take 60ms or even when it was saving zero data. I think the .Find() operation among other things was taking some time.