PerfCopy 1.2.2

Extension methods providing high performance deep copy capability for of arrays of common value types - currently: byte, char, short, int, long, and their unsigned brethren where applicable.
Considerably faster than Array.Copy - and it's also faster than Buffer.BlockCopy in most situations!

High-performance enabled through use of optimised 'unsafe' blocks.

This package could be a good addition to other packages if you're building in copying of some kind that would benefit from being fast.

Install-Package PerfCopy -Version 1.2.2
dotnet add package PerfCopy --version 1.2.2
<PackageReference Include="PerfCopy" Version="1.2.2" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add PerfCopy --version 1.2.2
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: PerfCopy, 1.2.2"
#r directive can be used in F# Interactive, C# scripting and .NET Interactive. Copy this into the interactive tool or source code of the script to reference the package.
// Install PerfCopy as a Cake Addin
#addin nuget:?package=PerfCopy&version=1.2.2

// Install PerfCopy as a Cake Tool
#tool nuget:?package=PerfCopy&version=1.2.2
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

Release Notes

Simplified the high-performance copy implementation, may run faster on many CPUs.


This package has no dependencies.

NuGet packages (2)

Showing the top 2 NuGet packages that depend on PerfCopy:

Package Downloads
High performance classic ring/circular buffer (with optional .NET BCL System.IO.Stream interface) for byte data. Packaged as a portable class library (PCL). Asynchronous I/O from streams is supported to boost performance. Supports concurrent reading and writing, and overwriting (optional).
A set of extension methods for doing bitwise manipulation such as endianness (bytes<-->integral types) and rotation. Endianness-related functionality: short, ushort, int, uint, long, ulong : conversion between (to and from) individual items of these and byte arrays, and between arrays of any of these (UInt32[], for example) and byte arrays. Little and big-endian methods exist at feature and/or type parity. Rotation-related functionality: byte, short, ushort, int, uint, long, ulong : left and right bitwise circular rotation ("rotate no carry"). Please note: the rotation implemented here is NOT "rotate through carry"! As such, sign is NOT handled specially for signed types. Endianness conversions operating on multiple values (bulk operations) are performance-enhanced with optimised 'unsafe' implementations. They are considerably faster than comparable operations provided by the BCL.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version History

Version Downloads Last updated
1.2.2 9,141 1/27/2015
1.2.1 638 1/27/2015
1.2.0 9,951 10/17/2014
1.1.1 634 10/16/2014
1.1.0 686 10/16/2014