Performance
So we just wrote some code that converts struct
types via reflection
at runtime to Core Data
types.
How fast is this? Can this be used well in production? I did some testing:
Create 2000 NSManagedObjects
Native, here, means creating an NSManagedObject
and setting the
property values via setValueForKey
. If you create a NSManagedObject
subclass within Core Data and set the values directly on the properties
(without the dynamic setValueForKey
overhead) this is probably even
faster.
So, as you can see, using reflection slows the whole process of creating
NSManagedObjects
down by about 3.5x. This is fine when you're
using this for a limited amount of items, or when you don't have to
care about speed. However, when you need to reflect over a huge amount
of structs
, this will probably kill your app's performance.