I wonder if Data might be a better tool for the job here since it is it’s own 
slice type and would avoid copying large amounts of data into temporary buffers.

> On May 8, 2017, at 16:47, Rick Mann via swift-users <swift-users@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.
> 
> I've since worked around this problem, but is there any way to improve on 
> this?
> 
> Thanks,
> 
> -- 
> Rick Mann
> rm...@latencyzero.com
> 
> 
> _______________________________________________
> swift-users mailing list
> swift-users@swift.org
> https://lists.swift.org/mailman/listinfo/swift-users

_______________________________________________
swift-users mailing list
swift-users@swift.org
https://lists.swift.org/mailman/listinfo/swift-users

Reply via email to