|
|
|
|
|
by viktorcode
1454 days ago
|
|
I'm wondering what you needed to write unsafe code for? Could there be another way to get rid of reference counting for your use case? Another question, have you tried using Accelerate framework to solve performance bottlenecks (or save yourself from having to write your own calc code)? |
|
In principle, I could get rid of reference counting overhead by using value types or immutable data. I couldn't see a simple path to doing that without re-architecting everything (with no guarantee that the end result would not just have different performance issues.) For the moment, I'm awaiting compiler improvements before re-evaluating the tradeoffs. There is certainly room for the compiler to reason better on eliding retain/release. https://github.com/apple/swift/issues/58549
Yes, the code does use Accelerate where applicable. That is one component of the numeric evaluation. It addresses the lowest level of things like evaluate the sin function on every array element, or multiply there arrays element wise. Performance tuning is a game of whack-a-mole. There's always another bottleneck somewhere.