on Mon May 08 2017, Rick Mann <swift-users-AT-swift.org> wrote: > I have this C library that interacts with some hardware over the > network that produces a ton of data. It tells me up front the maximum > size the data might be so I can allocate a buffer for it, then does a > bunch of network requests downloading that data into the buffer, then > tells me when it's done and what the final, smaller size is. > > Thanks to previous discussions on the list, I settled on using a > [UInt8] as the buffer, because it let me avoid various > .withUnsafePointer{} calls (I need the unsafe buffer pointer to live > outside the scope of the closures). Unfortunately, When I go to shrink > the buffer to its final size with: > > self.dataBuffer = Array(self.dataBuffer![0 ..< finalBufferSize]) > > This ends up taking over 2 minutes to complete (on an iPad Pro). > finalBufferSize is very large, 240 > MB, but I think it's doing a very naive copy.
This shouldn't be expensive. Please file an issue with a reproducer at http://bugs.swift.org and we'll look into it. > I've since worked around this problem, but is there any way to improve on > this? > > Thanks, -- -Dave _______________________________________________ swift-users mailing list swift-users@swift.org https://lists.swift.org/mailman/listinfo/swift-users