Add another benchmark. The benchmark now takes around 1 minute 40 seconds. Interesting thing here is that for TestMultiplePersistentRootPerformance, which does 1600 commits currently, the total time is 31s. 3s is spent in -[COSQLiteStore commitStoreTransaction]. 5s in -[COEditingContext validateChangedObjectsForContext:error:]. 18s in -[COObjectGraphContext setItemGraph:], 2s in -[COBranch modifiedItemsSnapshot]

So the red flags here are -setItemGraph: (this is replicating changes in [persistentRoot objectGraphContext] to [[persistentRoot currentBranch] objectGraphContext]).) Solution: a) don't create branch-specific object graphs until needed b) optimize -setItemGraph)

The other thing to look at is optimizing validateChangedObjectsForContext:error:.

git-svn-id: http://svn.gna.org/svn/etoile/trunk/Etoile/Frameworks/CoreObject@10155 7b3f36aa-e6db-49c1-8b4c-66eac1997e64