There is virtually no difference between Array.Copy and Buffer.BlockCopy when dealing with large buffers.
If you are rapidly calling Array.Copy with smaller buffers, then yes, you can save some milliseconds if you switch to Buffer.BlockCopy, because it skips checks / makes less function calls, and there's less overhead. As I said, the difference comes to play when we are dealing with very small data rapidly. That said, you can make some serious gains when you're dealing with large buffers. You just need to parallelize it, and make sure there is no false cache sharing. The other trick is to see what Mono.Simd offers. I don't see a reason why Xoring 128-bit blocks at once shouldn't be possible. You want something similiar: http://stackoverflow.com/questions/15067119/how-can-i-use-simd-to-accelerate-xor-two-blocks-of-memory Note I have absolutely no experience with Mono.Simd but I imagine it's pretty cool. _______________________________________________ Mono-devel-list mailing list Mono-devel-list@lists.ximian.com http://lists.ximian.com/mailman/listinfo/mono-devel-list