Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
N
neo
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Labels
Merge Requests
2
Merge Requests
2
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Jobs
Commits
Open sidebar
Kirill Smelkov
neo
Commits
2d13818e
Commit
2d13818e
authored
Oct 13, 2017
by
Kirill Smelkov
1
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
X bench-local + zhash: Add output in std bench format
parent
cd2cd093
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
51 additions
and
28 deletions
+51
-28
go/neo/t/neotest
go/neo/t/neotest
+21
-18
go/neo/t/zhash.go
go/neo/t/zhash.go
+13
-5
go/neo/t/zhash.py
go/neo/t/zhash.py
+17
-5
No files found.
go/neo/t/neotest
View file @
2d13818e
...
@@ -773,35 +773,37 @@ Benchmark$1-avg 1 \\3 \\4/op\
...
@@ -773,35 +773,37 @@ Benchmark$1-avg 1 \\3 \\4/op\
hashfunc
=
crc32
hashfunc
=
crc32
#hashfunc=null
#hashfunc=null
# bench <url> - run ZODB client benchmarks against URL
# bench <
topic> <
url> - run ZODB client benchmarks against URL
bench
()
{
bench
()
{
# XXX show C states usage diff after each benchmark XXX + same for P-states
# XXX show C states usage diff after each benchmark XXX + same for P-states
# XXX +cpufreq transition statistics (CPU_FREQ_STAT)
# XXX +cpufreq transition statistics (CPU_FREQ_STAT)
# XXX place=?
# XXX place=?
url
=
$1
topic
=
$1
url
=
$2
# nrun time demo-zbigarray read $url
# nrun time demo-zbigarray read $url
nrun ./zhash.py
--
$hashfunc
$url
nrun ./zhash.py
--
bench
=
$topic
/%s
--
$hashfunc
$url
echo
-e
"
\n
#
${
Npar
}
clients in parallel"
echo
-e
"
\n
#
${
Npar
}
clients in parallel"
nrunpar ./zhash.py
--
$hashfunc
$url
nrunpar ./zhash.py
--
bench
=
$topic
/%s-P
$Npar
--
$hashfunc
$url
if
[[
$url
==
zeo://
*
]]
;
then
if
[[
$url
==
zeo://
*
]]
;
then
echo
"(skipping zhash.go on ZEO -- Cgo does not support zeo:// protocol)"
echo
"(skipping zhash.go on ZEO -- Cgo does not support zeo:// protocol)"
return
return
fi
fi
echo
echo
bench_go
$url
bench_go
$
topic
$
url
}
}
# go-only part of bench
# go-only part of bench
bench_go
()
{
bench_go
()
{
url
=
$1
topic
=
$1
nrun ./zhash_go
--log_dir
=
$log
-
$hashfunc
$url
url
=
$2
nrun ./zhash_go
--log_dir
=
$log
-
$hashfunc
-useprefetch
$url
nrun ./zhash_go
--bench
=
$topic
/%s
--log_dir
=
$log
-
$hashfunc
$url
nrun ./zhash_go
--bench
=
$topic
/%s
--log_dir
=
$log
-
$hashfunc
-useprefetch
$url
echo
-e
"
\n
#
${
Npar
}
clients in parallel"
echo
-e
"
\n
#
${
Npar
}
clients in parallel"
nrunpar ./zhash_go
--log_dir
=
$log
-
$hashfunc
$url
nrunpar ./zhash_go
--
bench
=
$topic
/%s-P
$Npar
--
log_dir
=
$log
-
$hashfunc
$url
}
}
...
@@ -816,36 +818,36 @@ cmd_bench-local() {
...
@@ -816,36 +818,36 @@ cmd_bench-local() {
gen_data
gen_data
echo
-e
"
\n
*** FileStorage"
echo
-e
"
\n
*** FileStorage"
bench
$fs1
/data.fs
bench
`
hostname
`
/fs1
$fs1
/data.fs
echo
-e
"
\n
*** ZEO"
echo
-e
"
\n
*** ZEO"
Zpy
$fs1
/data.fs
Zpy
$fs1
/data.fs
bench zeo://
$Zbind
bench
`
hostname
`
/zeo
zeo://
$Zbind
killall runzeo
killall runzeo
wait
wait
echo
-e
"
\n
*** NEO/py sqlite"
echo
-e
"
\n
*** NEO/py sqlite"
NEOpylite
NEOpylite
bench neo://
$cluster
@
$Mbind
bench
`
hostname
`
/neo/py/sqlite
neo://
$cluster
@
$Mbind
xneoctl
set
cluster stopping
xneoctl
set
cluster stopping
wait
wait
echo
-e
"
\n
*** NEO/py sql"
echo
-e
"
\n
*** NEO/py sql"
NEOpysql
NEOpysql
bench neo://
$cluster
@
$Mbind
bench
`
hostname
`
/neo/py/sql
neo://
$cluster
@
$Mbind
xneoctl
set
cluster stopping
xneoctl
set
cluster stopping
xmysql
-e
"SHUTDOWN"
xmysql
-e
"SHUTDOWN"
wait
wait
echo
-e
"
\n
*** NEO/go"
echo
-e
"
\n
*** NEO/go"
NEOgo
NEOgo
bench neo://
$cluster
@
$Mbind
bench
`
hostname
`
/neo/go
neo://
$cluster
@
$Mbind
xneoctl
set
cluster stopping
xneoctl
set
cluster stopping
wait
wait
echo
-e
"
\n
*** NEO/go (sha1 disabled)"
echo
-e
"
\n
*** NEO/go (sha1 disabled)"
X_NEOGO_SHA1_SKIP
=
y NEOgo
X_NEOGO_SHA1_SKIP
=
y NEOgo
X_NEOGO_SHA1_SKIP
=
y bench_go neo://
$cluster
@
$Mbind
X_NEOGO_SHA1_SKIP
=
y bench_go
"
`
hostname
`
/neo/go(!sha1)"
neo://
$cluster
@
$Mbind
xneoctl
set
cluster stopping
xneoctl
set
cluster stopping
wait
wait
...
@@ -981,10 +983,11 @@ cmd_run-client() {
...
@@ -981,10 +983,11 @@ cmd_run-client() {
;;
;;
esac
esac
url
=
$1
topic
=
$1
test
-z
"
$url
"
&&
die
"Usage: neotest run-client <url>"
url
=
$2
test
-z
"
$topic
"
-o
-z
"
$url
"
&&
die
"Usage: neotest run-client <topic> <url>"
test
-z
"
$goonly
"
&&
bench
$
url
||
bench_go
$url
test
-z
"
$goonly
"
&&
bench
$
topic
$url
||
bench_go
$topic
$url
}
}
# command: benchmark local disk
# command: benchmark local disk
...
...
go/neo/t/zhash.go
View file @
2d13818e
...
@@ -69,6 +69,7 @@ func main() {
...
@@ -69,6 +69,7 @@ func main() {
fsha1
:=
flag
.
Bool
(
"sha1"
,
false
,
"compute SHA1 cryptographic hash"
)
fsha1
:=
flag
.
Bool
(
"sha1"
,
false
,
"compute SHA1 cryptographic hash"
)
fsha256
:=
flag
.
Bool
(
"sha256"
,
false
,
"compute SHA256 cryptographic hash"
)
fsha256
:=
flag
.
Bool
(
"sha256"
,
false
,
"compute SHA256 cryptographic hash"
)
fsha512
:=
flag
.
Bool
(
"sha512"
,
false
,
"compute SHA512 cryptographic hash"
)
fsha512
:=
flag
.
Bool
(
"sha512"
,
false
,
"compute SHA512 cryptographic hash"
)
fbench
:=
flag
.
String
(
"bench"
,
""
,
"use benchmarking format for output"
)
useprefetch
:=
flag
.
Bool
(
"useprefetch"
,
false
,
"prefetch loaded objects"
)
useprefetch
:=
flag
.
Bool
(
"useprefetch"
,
false
,
"prefetch loaded objects"
)
flag
.
Parse
()
flag
.
Parse
()
...
@@ -104,13 +105,13 @@ func main() {
...
@@ -104,13 +105,13 @@ func main() {
log
.
Fatal
(
ctx
,
"no hash function specified"
)
log
.
Fatal
(
ctx
,
"no hash function specified"
)
}
}
err
:=
zhash
(
ctx
,
url
,
h
,
*
useprefetch
)
err
:=
zhash
(
ctx
,
url
,
h
,
*
useprefetch
,
*
fbench
)
if
err
!=
nil
{
if
err
!=
nil
{
log
.
Fatal
(
ctx
,
err
)
log
.
Fatal
(
ctx
,
err
)
}
}
}
}
func
zhash
(
ctx
context
.
Context
,
url
string
,
h
hasher
,
useprefetch
bool
)
(
err
error
)
{
func
zhash
(
ctx
context
.
Context
,
url
string
,
h
hasher
,
useprefetch
bool
,
bench
string
)
(
err
error
)
{
defer
task
.
Running
(
&
ctx
,
"zhash"
)(
&
err
)
defer
task
.
Running
(
&
ctx
,
"zhash"
)(
&
err
)
stor
,
err
:=
zodb
.
OpenStorageURL
(
ctx
,
url
)
stor
,
err
:=
zodb
.
OpenStorageURL
(
ctx
,
url
)
...
@@ -218,10 +219,17 @@ loop:
...
@@ -218,10 +219,17 @@ loop:
x
:=
"zhash.go"
x
:=
"zhash.go"
if
useprefetch
{
if
useprefetch
{
x
+=
fmt
.
Sprintf
(
" +prefetch%d"
,
nprefetch
)
x
+=
fmt
.
Sprintf
(
"+prefetch%d"
,
nprefetch
)
}
if
bench
==
""
{
fmt
.
Printf
(
"%s:%x ; oid=0..%d nread=%d t=%s (%s / object) x=%s
\n
"
,
h
.
name
,
h
.
Sum
(
nil
),
oid
-
1
,
nread
,
δt
,
δt
/
time
.
Duration
(
oid
),
x
)
// XXX /oid cast ?
}
else
{
topic
:=
fmt
.
Sprintf
(
bench
,
x
)
// XXX -> better text/template
fmt
.
Printf
(
"Benchmark%s 1 %.1f µs/object
\t
# %s:%x oid=0..%d nread=%d t=%s
\n
"
,
topic
,
float64
(
δt
)
/
float64
(
oid
)
/
float64
(
time
.
Microsecond
),
h
.
name
,
h
.
Sum
(
nil
),
oid
-
1
,
nread
,
δt
)
}
}
fmt
.
Printf
(
"%s:%x ; oid=0..%d nread=%d t=%s (%s / object) x=%s
\n
"
,
h
.
name
,
h
.
Sum
(
nil
),
oid
-
1
,
nread
,
δt
,
δt
/
time
.
Duration
(
oid
),
x
)
// XXX /oid cast ?
return
nil
return
nil
}
}
go/neo/t/zhash.py
View file @
2d13818e
...
@@ -90,22 +90,29 @@ options:
...
@@ -90,22 +90,29 @@ options:
--sha1 compute SHA1 cryptographic hash
--sha1 compute SHA1 cryptographic hash
--sha256 compute SHA256 cryptographic hash
--sha256 compute SHA256 cryptographic hash
--sha512 compute SHA512 cryptographic hash
--sha512 compute SHA512 cryptographic hash
--bench=<topic> use benchmarking format for output
"""
,
file
=
w
)
"""
,
file
=
w
)
def
main
():
def
main
():
try
:
try
:
optv
,
argv
=
getopt
(
sys
.
argv
[
1
:],
"h"
,
[
"help"
]
+
hashRegistry
.
keys
())
optv
,
argv
=
getopt
(
sys
.
argv
[
1
:],
"h"
,
[
"help"
,
"bench="
]
+
hashRegistry
.
keys
())
except
GetoptError
as
e
:
except
GetoptError
as
e
:
print
(
"E: %s"
%
e
,
file
=
sys
.
stderr
)
print
(
"E: %s"
%
e
,
file
=
sys
.
stderr
)
usage
(
sys
.
stderr
)
usage
(
sys
.
stderr
)
exit
(
1
)
exit
(
1
)
for
opt
,
_
in
optv
:
bench
=
None
for
opt
,
arg
in
optv
:
if
opt
in
(
"-h"
,
"--help"
):
if
opt
in
(
"-h"
,
"--help"
):
print
(
__doc__
)
print
(
__doc__
)
usage
(
sys
.
stdout
)
usage
(
sys
.
stdout
)
sys
.
exit
()
sys
.
exit
()
if
opt
in
(
"--bench"
):
bench
=
arg
continue
opt
=
opt
.
lstrip
(
"-"
)
opt
=
opt
.
lstrip
(
"-"
)
hctor
=
hashRegistry
[
opt
]
hctor
=
hashRegistry
[
opt
]
h
=
hctor
()
h
=
hctor
()
...
@@ -142,9 +149,14 @@ def main():
...
@@ -142,9 +149,14 @@ def main():
tend
=
time
()
tend
=
time
()
dt
=
tend
-
tstart
dt
=
tend
-
tstart
print
(
'%s:%s ; oid=0..%d nread=%d t=%.3fs (%.1fμs / object) x=zhash.py'
%
\
x
=
"zhash.py"
(
h
.
name
,
h
.
hexdigest
(),
oid
-
1
,
nread
,
dt
,
dt
*
1E6
/
oid
))
if
bench
is
None
:
print
(
'%s:%s ; oid=0..%d nread=%d t=%.3fs (%.1fμs / object) x=%s'
%
\
(
h
.
name
,
h
.
hexdigest
(),
oid
-
1
,
nread
,
dt
,
dt
*
1E6
/
oid
,
x
))
else
:
topic
=
bench
%
x
print
(
'Benchmark%s 1 %.1f µs/object
\
t
# %s:%s oid=0..%d nread=%d t=%.3fs'
%
\
(
topic
,
dt
*
1E6
/
oid
,
h
.
name
,
h
.
hexdigest
(),
oid
-
1
,
nread
,
dt
))
if
__name__
==
'__main__'
:
if
__name__
==
'__main__'
:
main
()
main
()
Kirill Smelkov
@kirr
mentioned in commit
3f578560
·
Jul 12, 2018
mentioned in commit
3f578560
mentioned in commit 3f578560c49222cf4b0f8ba2b408d3db9c94444d
Toggle commit list
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment