FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
node/benchmark/buffers/buffer-write.js at main · fetchapi/node · GitHub
fetchapi
/
node
Public
forked from
nodejs/node
Notifications
You must be signed in to change notification settings
Fork
1
Star
0
Code
Pull requests
1
Actions
Projects
Security and quality
0
Insights
Additional navigation options
Code
Pull requests
Actions
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
node
/
benchmark
/
buffers
/
buffer-write.js
Copy path
More file actions
More file actions
Latest commit
History
History
History
123 lines (112 loc) · 2.21 KB
Breadcrumbs
node
/
benchmark
/
buffers
/
buffer-write.js
Copy path
File metadata and controls
123 lines (112 loc) · 2.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
123
'use strict'
;
const
common
=
require
(
'../common.js'
)
;
const
types
=
[
'BigUInt64LE'
,
'BigUInt64BE'
,
'BigInt64LE'
,
'BigInt64BE'
,
'UInt8'
,
'UInt16LE'
,
'UInt16BE'
,
'UInt32LE'
,
'UInt32BE'
,
'UIntLE'
,
'UIntBE'
,
'Int8'
,
'Int16LE'
,
'Int16BE'
,
'Int32LE'
,
'Int32BE'
,
'IntLE'
,
'IntBE'
,
'FloatLE'
,
'FloatBE'
,
'DoubleLE'
,
'DoubleBE'
,
]
;
const
bench
=
common
.
createBenchmark
(
main
,
{
buffer
:
[
'fast'
]
,
type
:
types
,
n
:
[
1e6
]
,
}
)
;
const
INT8
=
0x7f
;
const
INT16
=
0x7fff
;
const
INT32
=
0x7fffffff
;
const
INT48
=
0x7fffffffffff
;
const
INT64
=
0x7fffffffffffffffn
;
const
UINT8
=
0xff
;
const
UINT16
=
0xffff
;
const
UINT32
=
0xffffffff
;
const
UINT64
=
0xffffffffffffffffn
;
const
mod
=
{
writeBigInt64BE
:
INT64
,
writeBigInt64LE
:
INT64
,
writeBigUInt64BE
:
UINT64
,
writeBigUInt64LE
:
UINT64
,
writeInt8
:
INT8
,
writeInt16BE
:
INT16
,
writeInt16LE
:
INT16
,
writeInt32BE
:
INT32
,
writeInt32LE
:
INT32
,
writeUInt8
:
UINT8
,
writeUInt16BE
:
UINT16
,
writeUInt16LE
:
UINT16
,
writeUInt32BE
:
UINT32
,
writeUInt32LE
:
UINT32
,
writeUIntLE
:
INT8
,
writeUIntBE
:
INT16
,
writeIntLE
:
INT32
,
writeIntBE
:
INT48
,
}
;
const
byteLength
=
{
writeUIntLE
:
1
,
writeUIntBE
:
2
,
writeIntLE
:
4
,
writeIntBE
:
6
,
}
;
function
main
(
{
n
,
buf
,
type
}
)
{
const
buff
=
buf
===
'fast'
?
Buffer
.
alloc
(
8
)
:
require
(
'buffer'
)
.
SlowBuffer
(
8
)
;
const
fn
=
`write
${
type
}
`
;
if
(
!
/
\d
/
.
test
(
fn
)
)
benchSpecialInt
(
buff
,
fn
,
n
)
;
else
if
(
/
B
i
g
U
?
I
n
t
/
.
test
(
fn
)
)
benchBigInt
(
buff
,
fn
,
BigInt
(
n
)
)
;
else
if
(
/
I
n
t
/
.
test
(
fn
)
)
benchInt
(
buff
,
fn
,
n
)
;
else
benchFloat
(
buff
,
fn
,
n
)
;
}
function
benchBigInt
(
buff
,
fn
,
n
)
{
const
m
=
mod
[
fn
]
;
bench
.
start
(
)
;
for
(
let
i
=
0n
;
i
!==
n
;
i
++
)
{
buff
[
fn
]
(
i
&
m
,
0
)
;
}
bench
.
end
(
Number
(
n
)
)
;
}
function
benchInt
(
buff
,
fn
,
n
)
{
const
m
=
mod
[
fn
]
;
bench
.
start
(
)
;
for
(
let
i
=
0
;
i
!==
n
;
i
++
)
{
buff
[
fn
]
(
i
&
m
,
0
)
;
}
bench
.
end
(
n
)
;
}
function
benchSpecialInt
(
buff
,
fn
,
n
)
{
const
m
=
mod
[
fn
]
;
const
byte
=
byteLength
[
fn
]
;
bench
.
start
(
)
;
for
(
let
i
=
0
;
i
!==
n
;
i
++
)
{
buff
[
fn
]
(
i
&
m
,
0
,
byte
)
;
}
bench
.
end
(
n
)
;
}
function
benchFloat
(
buff
,
fn
,
n
)
{
bench
.
start
(
)
;
for
(
let
i
=
0
;
i
!==
n
;
i
++
)
{
buff
[
fn
]
(
i
,
0
)
;
}
bench
.
end
(
n
)
;
}
Back
|
FazBrowse Home
|
New Git URL