8000 Separate node/browser wrappers · protobufjs/bytebuffer.js@e5e94ad · GitHub
[go: up one dir, main page]

Skip to content

Commit e5e94ad

Browse files
committed
Separate node/browser wrappers
1 parent 87f7a38 commit e5e94ad

File tree

7 files changed

+131
-42
lines changed

7 files changed

+131
-42
lines changed

dist/ByteBufferAB.min.js.gz

0 Bytes
Binary file not shown.

dist/ByteBufferAB_DataView.min.js.gz

0 Bytes
Binary file not shown.

dist/ByteBufferNB.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ module.exports = (function() {
2424
"use strict";
2525

2626
var buffer = require("buffer"),
27-
Buffer = buffer['Buffer'],
27+
Buffer = buffer["Buffer"],
2828
Long = require("long"),
2929
memcpy = null; try { memcpy = require("memcpy"); } catch (e) {}
3030

package.json

Lines changed: 50 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,52 @@
11
{
2-
"name": "bytebuffer",
3-
"version": "4.0.0-pre",
4-
"author": "Daniel Wirtz <dcode@dcode.io>",
5-
"description": "The swiss army knife for binary data in JavaScript.",
6-
"main": "index.js",
7-
"browser": "dist/ByteBufferAB.js",
8-
"repository": {
9-
"type": "git",
10-
"url": "https://github.com/dcodeIO/ByteBuffer.js.git"
11-
},
12-
"bugs": {
13-
"url": "https://github.com/dcodeIO/ByteBuffer.js/issues"
14-
},
15-
"keywords": ["net", "array", "buffer", "arraybuffer", "typed array", "bytebuffer", "json", "websocket", "webrtc"],
16-
"dependencies": {
17-
"long": "~2 >=2.2.3",
18-
"bufferview": "~1"
19-
},
20-
"devDependencies": {
21-
"utfx": "~1",
22-
"lxiv": "~0.2",
23-
"testjs": "~1",
24-
"metascript": "~0",
25-
"closurecompiler": "~1"
26-
},
27-
"license": "Apache-2.0",
28-
"engines": {
29-
"node": ">=0.8"
30-
},
31-
"scripts": {
32-
"prepublish": "npm test",
33-
"test": "node node_modules/testjs/bin/testjs tests/suite.js",
34-
"make": "npm run-script build && npm run-script compile && npm run-script compress && npm test",
35-
"build": "node scripts/build.js",
36-
"compile": "npm run-script compileAB && npm run-script compileAB_DataView",
37-
"compileAB": "ccjs dist/ByteBufferAB.js --create_source_map=dist/ByteBufferAB.min.map --compilation_level=ADVANCED_OPTIMIZATIONS --externs=externs/minimal-env.js --externs=node_modules/long/externs/Long.js > dist/ByteBufferAB.min.js",
38-
"compileAB_DataView": "ccjs dist/ByteBufferAB_DataView.js --create_source_map=dist/ByteBufferAB_DataView.min.map --compilation_level=ADVANCED_OPTIMIZATIONS --externs=externs/minimal-env.js --externs=node_modules/long/externs/Long.js > dist/ByteBufferAB_DataView.min.js",
39-
"compress": "gzip -c -9 dist/ByteBufferAB.min.js > dist/ByteBufferAB.min.js.gz && gzip -c -9 dist/ByteBufferAB_DataView.min.js > dist/ByteBufferAB_DataView.min.js.gz"
40-
}
2+
"name": "bytebuffer",
3+
"version": "4.0.0-pre",
4+
"author": "Daniel Wirtz <dcode@dcode.io>",
5+
"description": "The swiss army knife for binary data in JavaScript.",
6+
"main": "index.js",
7+
"browser": "dist/ByteBufferAB.js",
8+
"repository": {
9+
"type": "git",
10+
"url": "https://github.com/dcodeIO/ByteBuffer.js.git"
11+
},
12+
"bugs": {
13+
"url": "https://github.com/dcodeIO/ByteBuffer.js/issues"
14+
},
15+
"keywords": [
16+
"net",
17+
"array",
18+
"buffer",
19+
"arraybuffer",
20+
"typed array",
21+
"bytebuffer",
22+
"json",
23+
"websocket",
24+
"webrtc"
25+
],
26+
"dependencies": {
27+
"long": "~2 >=2.2.3",
28+
"bufferview": "~1"
29+
},
30+
"devDependencies": {
31+
"closurecompiler": "~1",
32+
"lxiv": "~0.2",
33+
"metascript": "~0",
34+
"pretty-hrtime": "^1.0.0",
35+
"testjs": "~1",
36+
"utfx": "~1"
37+
},
38+
"license": "Apache-2.0",
39+
"engines": {
40+
"node": ">=0.8"
41+
},
42+
"scripts": {
43+
"prepublish": "npm test",
44+
"test": "node node_modules/testjs/bin/testjs tests/suite.js",
45+
"make": "npm run-script build && npm run-script compile && npm run-script compress && npm test",
46+
"build": "node scripts/build.js",
47+
"compile": "npm run-script compileAB && npm run-script compileAB_DataView",
48+
"compileAB": "ccjs dist/ByteBufferAB.js --create_s F438 ource_map=dist/ByteBufferAB.min.map --compilation_level=ADVANCED_OPTIMIZATIONS --externs=externs/minimal-env.js --externs=node_modules/long/externs/Long.js > dist/ByteBufferAB.min.js",
49+
"compileAB_DataView": "ccjs dist/ByteBufferAB_DataView.js --create_source_map=dist/ByteBufferAB_DataView.min.map --compilation_level=ADVANCED_OPTIMIZATIONS --externs=externs/minimal-env.js --externs=node_modules/long/externs/Long.js > dist/ByteBufferAB_DataView.min.js",
50+
"compress": "gzip -c -9 dist/ByteBufferAB.min.js > dist/ByteBufferAB.min.js.gz && gzip -c -9 dist/ByteBufferAB_DataView.min.js > dist/ByteBufferAB_DataView.min.js.gz"
51+
}
4152
}

scripts/build.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ scope.NODE = true;
8686
console.log("Building ByteBufferNB with scope", JSON.stringify(scope, null, 2));
8787
fs.writeFileSync(
8888
path.join(distDir, "ByteBufferNB.js"),
89-
MetaScript.transform(fs.readFileSync(filename = path.join(srcDir, "ByteBufferNB.js")), filename, scope, srcDir)
89+
MetaScript.transform(fs.readFileSync(filename = path.join(srcDir, "wrap_node.js")), filename, scope, srcDir)
9090
);
9191

9292
// Build browser ByteBuffer using Typed Arrays

src/ByteBufferNB.js renamed to src/wrap_node.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ module.exports = (function() {
2525
"use strict";
2626

2727
var buffer = require("buffer"),
28-
Buffer = buffer['Buffer'],
28+
Buffer = buffer["Buffer"],
2929
//? if (BUFFERVIEW)
3030
BufferView = require("bufferview"),
3131
Long = require("long"),

tests/bench.js

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
var ByteBuffer = require("../index.js"),
2+
prettyHrTime = require("pretty-hrtime");
3+
4+
var impls = [
5+
{ name: "ByteBufferNB", impl: ByteBuffer.ByteBufferNB },
6+
{ name: "ByteBufferAB", impl: ByteBuffer.ByteBufferAB },
7+
{ name: "ByteBufferAB_DataView", impl: ByteBuffer.ByteBufferAB_DataView }
8+
];
9+
10+
var bench = {};
11+
12+
bench["allocate"] = function(ByteBuffer, n) {
13+
n = n || 10000;
14+
for (var i=0; i<n; ++i)
15+
new ByteBuffer();
16+
return n;
17+
};
18+
19+
bench["writeInt32"] = function(ByteBuffer, n) {
20+
n = n || 1000000;
21+
var bb = new ByteBuffer(4);
22+
for (var i=0; i<n; ++i)
23+
bb.writeInt32(0x7fffffff, 0);
24+
return n;
25+
};
26+
27+
bench["readInt32"] = function(ByteBuffer, n) {
28+
n = n || 1000000;
29+
var bb = new ByteBuffer(4).writeInt32(0x7fffffff).flip();
30+
for (var i=0; i<n; ++i)
31+
bb.readInt32(0);
32+
return n;
33+
};
34+
35+
bench["writeVarint32"] = function(ByteBuffer, n) {
36+
n = n || 1000000;
37+
var bb = new ByteBuffer(6);
38+
for (var i=0; i<n; ++i)
39+
bb.writeVarint32(0x7fffffff, 0);
40+
return n;
41+
};
42+
43+
bench["readVarint32"] = function(ByteBuffer, n) {
44+
n = n || 1000000;
45+
var bb = new ByteBuffer(6).writeInt32(0x7fffffff).flip();
46+
for (var i=0; i<n; ++i)
47+
bb.readVarint32(0);
48+
return n;
49+
};
50+
51+
bench["writeString"] = function(ByteBuffer, n) {
52+
n = n || 100000;
53+
var bb = new ByteBuffer(26);
54+
for (var i=0; i<n; ++i)
55+
bb.writeString("abcdefghijklmnopqrstuvwxyz", 0);
56+
return n;
57+
};
58+
59+
bench["readString"] = function(ByteBuffer, n) {
60+
n = n || 100000;
61+
var bb = new ByteBuffer(26).writeString("abcdefghijklmnopqrstuvwxyz").flip();
62+
for (var i=0; i<n; ++i)
63+
bb.readString(26, ByteBuffer.METRICS_BYTES, 0);
64+
return n;
65+
};
66+
67+
Object.keys(bench).forEach(function(key) {
68+
var func = bench[key];
69+
console.log(key);
70+
impls.forEach(function(impl) {
71+
var n, diff;
72+
var start = process.hrtime();
73+
n = func(impl.impl);
74+
diff = process.hrtime(start);
75+
console.log("- "+impl.name+": "+prettyHrTime(diff));
76+
});
77+
console.log();
78+
});

0 commit comments

Comments
 (0)
0