FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
bitcore/benchmark/serialization.js at master · evisoft/bitcore · GitHub
evisoft
bitcore
Repository navigation
Code
Pull requests
Actions
Projects
Wiki
Security and quality
Insights
Expand file tree
Breadcrumbs
bitcore
/
benchmark
/
serialization.js
Copy path
More file actions
More file actions
Latest commit
History
History
History
122 lines (101 loc) · 3.21 KB
Breadcrumbs
bitcore
/
benchmark
/
serialization.js
Copy path
File metadata and controls
122 lines (101 loc) · 3.21 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
'use strict'
;
var
benchmark
=
require
(
'benchmark'
)
;
var
bitcore
=
require
(
'..'
)
;
var
bitcoinjs
=
require
(
'bitcoinjs-lib'
)
;
var
bcoin
=
require
(
'bcoin'
)
;
var
async
=
require
(
'async'
)
;
var
fullnode
=
require
(
'fullnode'
)
;
var
blockData
=
require
(
'./block-357238.json'
)
;
var
maxTime
=
20
;
console
.
log
(
'Benchmarking Block/Transaction Serialization'
)
;
console
.
log
(
'---------------------------------------'
)
;
async
.
series
(
[
function
(
next
)
{
var
buffers
=
[
]
;
var
hashBuffers
=
[
]
;
console
.
log
(
'Generating Random Test Data...'
)
;
for
(
var
i
=
0
;
i
<
100
;
i
++
)
{
// uint64le
var
br
=
new
bitcore
.
encoding
.
BufferWriter
(
)
;
var
num
=
Math
.
round
(
Math
.
random
(
)
*
10000000000000
)
;
br
.
writeUInt64LEBN
(
new
bitcore
.
crypto
.
BN
(
num
)
)
;
buffers
.
push
(
br
.
toBuffer
(
)
)
;
// hashes
var
data
=
bitcore
.
crypto
.
Hash
.
sha256sha256
(
new
Buffer
(
32
)
)
;
hashBuffers
.
push
(
data
)
;
}
var
c
=
0
;
var
bn
;
function
readUInt64LEBN
(
)
{
if
(
c
>=
buffers
.
length
)
{
c
=
0
;
}
var
buf
=
buffers
[
c
]
;
var
br
=
new
bitcore
.
encoding
.
BufferReader
(
buf
)
;
bn
=
br
.
readUInt64LEBN
(
)
;
c
++
;
}
var
reversed
;
function
readReverse
(
)
{
if
(
c
>=
hashBuffers
.
length
)
{
c
=
0
;
}
var
buf
=
hashBuffers
[
c
]
;
var
br
=
new
bitcore
.
encoding
.
BufferReader
(
buf
)
;
reversed
=
br
.
readReverse
(
)
;
c
++
;
}
console
.
log
(
'Starting benchmark...'
)
;
var
suite
=
new
benchmark
.
Suite
(
)
;
suite
.
add
(
'bufferReader.readUInt64LEBN()'
,
readUInt64LEBN
,
{
maxTime
:
maxTime
}
)
;
suite
.
add
(
'bufferReader.readReverse()'
,
readReverse
,
{
maxTime
:
maxTime
}
)
;
suite
.
on
(
'cycle'
,
function
(
event
)
{
console
.
log
(
String
(
event
.
target
)
)
;
}
)
.
on
(
'complete'
,
function
(
)
{
console
.
log
(
'Done'
)
;
console
.
log
(
'----------------------------------------------------------------------'
)
;
next
(
)
;
}
)
.
run
(
)
;
}
,
function
(
next
)
{
var
block1
;
var
block2
;
var
block3
;
function
bitcoreTest
(
)
{
block1
=
bitcore
.
Block
.
fromString
(
blockData
)
;
}
function
bitcoinJSTest
(
)
{
block2
=
bitcoinjs
.
Block
.
fromHex
(
blockData
)
;
}
var
parser
=
new
bcoin
.
protocol
.
parser
(
)
;
function
bcoinTest
(
)
{
var
raw
=
bcoin
.
utils
.
toArray
(
blockData
,
'hex'
)
;
var
data
=
parser
.
parseBlock
(
raw
)
;
block3
=
new
bcoin
.
block
(
data
,
'block'
)
;
}
var
blockDataMessage
=
'0000000000000000'
+
blockData
;
// add mock leading magic and size
function
fullnodeTest
(
)
{
fullnode
.
Block
(
)
.
fromHex
(
blockDataMessage
)
;
}
var
suite
=
new
benchmark
.
Suite
(
)
;
suite
.
add
(
'bitcore'
,
bitcoreTest
,
{
maxTime
:
maxTime
}
)
;
suite
.
add
(
'bitcoinjs'
,
bitcoinJSTest
,
{
maxTime
:
maxTime
}
)
;
suite
.
add
(
'bcoin'
,
bcoinTest
,
{
maxTime
:
maxTime
}
)
;
suite
.
add
(
'fullnode'
,
fullnodeTest
,
{
maxTime
:
maxTime
}
)
;
suite
.
on
(
'cycle'
,
function
(
event
)
{
console
.
log
(
String
(
event
.
target
)
)
;
}
)
.
on
(
'complete'
,
function
(
)
{
console
.
log
(
'Fastest is '
+
this
.
filter
(
'fastest'
)
.
pluck
(
'name'
)
)
;
console
.
log
(
'----------------------------------------------------------------------'
)
;
next
(
)
;
}
)
.
run
(
)
;
}
]
,
function
(
err
)
{
console
.
log
(
'Finished'
)
;
}
)
;
Back
|
FazBrowse Home
|
New Git URL