Comparing version 0.1.0 to 0.2.0
{ | ||
"name": "memcpy", | ||
"version": "0.1.0", | ||
"version": "0.2.0", | ||
"author": "Daniel Wirtz <dcode@dcode.io>", | ||
@@ -5,0 +5,0 @@ "description": "Copies data between node Buffers and/or ArrayBuffers up to ~75 times faster than in pure JS.", |
@@ -12,14 +12,2 @@ node-memcpy | ||
``` | ||
|_ _ _|_ | ||
|_(-_)|_ test.js v1.0.0 | ||
i memcpy.interop > cc Buffer -> Buffer | ||
i memcpy.interop > cc Buffer -> ArrayBuffer | ||
i memcpy.interop > cc ArrayBuffer -> Buffer | ||
i memcpy.interop > cc ArrayBuffer -> ArrayBuffer | ||
i memcpy.interop > js Buffer -> Buffer | ||
i memcpy.interop > js Buffer -> ArrayBuffer | ||
i memcpy.interop > js ArrayBuffer -> Buffer | ||
i memcpy.interop > js ArrayBuffer -> ArrayBuffer | ||
+ memcpy.interop 5.430 ms 48 assertions | ||
i memcpy.100k > cc Buffer -> Buffer: 22.222ms | ||
@@ -29,2 +17,3 @@ i memcpy.100k > cc Buffer -> ArrayBuffer: 23.548ms | ||
i memcpy.100k > cc ArrayBuffer -> ArrayBuffer: 21.778ms | ||
i memcpy.100k > js Buffer -> Buffer: 23.163ms | ||
@@ -34,5 +23,2 @@ i memcpy.100k > js Buffer -> ArrayBuffer: 1043.713ms | ||
i memcpy.100k > js ArrayBuffer -> ArrayBuffer: 1607.978ms | ||
+ memcpy.100k 3773.234 ms 0 assertions | ||
test OK 2 tests (3780.560 ms, 48 assertions) | ||
``` | ||
@@ -53,2 +39,11 @@ | ||
API | ||
--- | ||
```js | ||
var memcpy = require("memcpy"), // C++ binding if available, else native JS | ||
memcpy_binding = memcpy.binding, // C++ binding or NULL if not available | ||
memcpy_native = memcpy.native; // Native JS | ||
... | ||
``` | ||
Please keep in mind that - besides the nice numbers - this is still to be considered experimental. I'd love if you'd | ||
@@ -55,0 +50,0 @@ review the C++ code to validate that it's safe. I can't yet think about a sane use case, though, as just sticking with |
@@ -53,2 +53,25 @@ function fill(buf) { | ||
"overlap": function(test) { | ||
[memcpy.binding, memcpy.native].forEach(function(memcpy) { | ||
[Buffer, ArrayBuffer].forEach(function(Type) { | ||
var b = new Type(8); | ||
test.log((memcpy === memcpy.binding ? "cc".cyan : "js".green)+" "+b.constructor.name); | ||
fill(b); | ||
test.strictEqual(hex(b), "0123456789ABCDEF"); | ||
memcpy(b, 1, b, 4, 7); | ||
test.strictEqual(hex(b), "0189ABCD89ABCDEF"); | ||
fill(b); | ||
memcpy(b, b); | ||
test.strictEqual(hex(b), "0123456789ABCDEF"); | ||
fill(b); | ||
memcpy(b, b, 4); | ||
test.strictEqual(hex(b), "89ABCDEF89ABCDEF"); | ||
fill(b); | ||
memcpy(b, 4, b, 0, 4); | ||
test.strictEqual(hex(b), "0123456701234567"); | ||
}); | ||
}); | ||
test.done(); | ||
}, | ||
"100k": function(test) { | ||
@@ -55,0 +78,0 @@ [memcpy.binding, memcpy.native].forEach(function(memcpy) { |
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
27933
199
50