On Realm Complex Trial code(RealmTester.java), if you call realm.copyToRealm(finalAddressBooks);, all contacts and address items referenced by these address books will be inserted as well. So why do you need to call copyToRealmOrUpdate() for contacts and items in each address book? This seems to have a big impact on Realm's performance.
That change was added on this commit: f79b824#diff-254e581a054b5c06b307166748225016
I don't understand the reason for this change. To me it seems like the code before this commit was correct.