-
Notifications
You must be signed in to change notification settings - Fork 76
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
WWDC Performance #23
WWDC Performance #23
Conversation
Conflicts: Source/MMRecord/MMRecordResponse.m
…100000 down to 25 seconds.
Man I saw this pop up in my email since I am watching your repository and would love to offer you a coherent code review but the signal to noise ratio in this pull request is off the charts. You have a vendored AFNetworking update and a bunch of ancillary stuff in the changeset that makes it really hard to evaluate the content of the performance focused changes. Maybe I can help with some focusing questions:
I love that you are working on this and taking a look at the performance problems inherent in dealing with Core Data. There may be an opportunity to share some code between RestKit and MMRecord once you get your arms around your performance profile. Hope this is helpful -- I'd love to give your more substantive feedback on a more granular level in the future. |
Hey Blake, That's super helpful feedback. Let me break out the changes to the Example project and re-submit this. The actual changes to MMRecord are fairly small, so breaking out all the Example stuff should help focus this in. I'll post back when that's done. Thanks,
|
Hi Blake, If you get a chance, please check out the new pull request here: Thanks,
|
So I had an itch to do some performance optimization at WWDC after watching the Core Data Performance session and here's the result. On my sample test App.net dataset I'm seeing performance improvements from the following sample sizes.
1000 records: 300ms
10000 records: 3s
100000 records: 30s
Those are fairly complex records which have multiple relationships and populate multiple attributes per relationship entity. It's a significant performance improvement just with a few basic algorithmic changes.
Part of that pulls in Luke's (cc @urbanappetite) changes from the other pull request. Part of it is changes I made at WWDC.
Please review the changes made to the core MMRecord classes. The rest of the changes are the addition of a new Example app which allows you to control things like test data sample size via a method in the app delegate. That makes it easy to try different sizes and diagnose issues quicker.
Thanks,