Use of memcpy caused performance regression
hassila opened this issue · comments
Joakim Hassila commented
The change to use memcpy (fc21883) actually regressed performance:
withUnsafePointer(&v){
_data.advancedBy(leftCursor - prefixLength).initializeFrom(UnsafeMutablePointer<UInt8>($0), count: c)
}
// memcpy(_data.advancedBy(leftCursor - prefixLength), &v, c)
Using memcpy:
Eager run
=================================
5906 ms encode
3974 ms decode
434 ms use
741 ms dealloc
5149 ms decode+use+dealloc
=================================
with withUnsafePointer:
Eager run
=================================
5691 ms encode
3779 ms decode
412 ms use
697 ms dealloc
4888 ms decode+use+dealloc
=================================