mzaks / FlatBuffersSwift

This project brings FlatBuffers (an efficient cross platform serialization library) to Swift.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Use of memcpy caused performance regression

hassila opened this issue · comments

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
=================================