mirror of
https://github.com/johnkerl/miller.git
synced 2026-07-18 00:45:47 +00:00
Copy-reduction performance in Mlrval.String() (#787)
This commit is contained in:
parent
f4ba0227f8
commit
2a2ff7a768
5 changed files with 35 additions and 86 deletions
|
|
@ -7,8 +7,11 @@ import (
|
|||
)
|
||||
|
||||
// Must have non-pointer receiver in order to implement the fmt.Stringer
|
||||
// interface to make this printable via fmt.Println et al.
|
||||
func (mv Mlrval) String() string {
|
||||
// interface to make this printable via fmt.Println et al. However, that
|
||||
// results in a needless copy of the Mlrval. So, we intentionally use pointer
|
||||
// receiver, and if we need to print to stdout, we can fmt.Printf with "%s" and
|
||||
// mv.String().
|
||||
func (mv *Mlrval) String() string {
|
||||
// TODO: comment re deferral -- important perf effect!
|
||||
// if mv.IsFloat() && floatOutputFormatter != nil
|
||||
// if mv.mvtype == MT_FLOAT && floatOutputFormatter != nil {
|
||||
|
|
|
|||
|
|
@ -1,41 +1,9 @@
|
|||
echo; for m in mlr5 ~/tmp/miller/mlr "./mlr -S" mlr; do
|
||||
justtime $m --csv --from ~/tmp/big.csv \
|
||||
check \
|
||||
| md5sum
|
||||
done
|
||||
mlrs="mlr5 ~/tmp/miller/mlr ./mlr"
|
||||
|
||||
echo; for m in mlr5 ~/tmp/miller/mlr "./mlr -S" mlr; do
|
||||
justtime $m --csv --from ~/tmp/big.csv \
|
||||
cat \
|
||||
| md5sum;
|
||||
done
|
||||
|
||||
echo; for m in mlr5 ~/tmp/miller/mlr "./mlr -S" mlr; do
|
||||
justtime $m --csv --from ~/tmp/big.csv \
|
||||
head \
|
||||
| md5sum;
|
||||
done
|
||||
|
||||
echo; for m in mlr5 ~/tmp/miller/mlr "./mlr -S" mlr; do
|
||||
justtime $m --csv --from ~/tmp/big.csv \
|
||||
tail \
|
||||
| md5sum;
|
||||
done
|
||||
|
||||
echo; for m in mlr5 ~/tmp/miller/mlr "./mlr -S" mlr; do
|
||||
justtime $m --csv --from ~/tmp/big.csv \
|
||||
tac \
|
||||
| md5sum;
|
||||
done
|
||||
|
||||
echo; for m in mlr5 ~/tmp/miller/mlr "./mlr -S" mlr; do
|
||||
justtime $m --csv --from ~/tmp/big.csv \
|
||||
sort -f shape \
|
||||
| md5sum;
|
||||
done
|
||||
|
||||
echo; for m in mlr5 ~/tmp/miller/mlr "./mlr -S" mlr; do
|
||||
justtime $m --csv --from ~/tmp/big.csv \
|
||||
sort -n quantity \
|
||||
| md5sum;
|
||||
done
|
||||
echo; for mlr in $mlrs; do justtime $mlr --csv --from ~/tmp/big.csv check | md5sum; done
|
||||
echo; for mlr in $mlrs; do justtime $mlr --csv --from ~/tmp/big.csv cat | md5sum; done
|
||||
echo; for mlr in $mlrs; do justtime $mlr --csv --from ~/tmp/big.csv head | md5sum; done
|
||||
echo; for mlr in $mlrs; do justtime $mlr --csv --from ~/tmp/big.csv tail | md5sum; done
|
||||
echo; for mlr in $mlrs; do justtime $mlr --csv --from ~/tmp/big.csv tac | md5sum; done
|
||||
echo; for mlr in $mlrs; do justtime $mlr --csv --from ~/tmp/big.csv sort -f shape | md5sum; done
|
||||
echo; for mlr in $mlrs; do justtime $mlr --csv --from ~/tmp/big.csv sort -n quantity | md5sum; done
|
||||
|
|
|
|||
|
|
@ -1,26 +1,28 @@
|
|||
echo; for m in mlr5 ~/tmp/miller/mlr "mlr -S" mlr; do
|
||||
justtime $m --csv --from ~/tmp/big.csv \
|
||||
mlrs="mlr5 ~/tmp/miller/mlr ./mlr"
|
||||
|
||||
echo; for mlr in $mlrs; do
|
||||
justtime $mlr --csv --from ~/tmp/big.csv \
|
||||
then put -f scripts/chain-1.mlr \
|
||||
| md5sum;
|
||||
done
|
||||
|
||||
echo; for m in mlr5 ~/tmp/miller/mlr "mlr -S" mlr; do
|
||||
justtime $m --csv --from ~/tmp/big.csv \
|
||||
echo; for mlr in $mlrs; do
|
||||
justtime $mlr --csv --from ~/tmp/big.csv \
|
||||
then put -f scripts/chain-1.mlr \
|
||||
then put -f scripts/chain-1.mlr \
|
||||
| md5sum;
|
||||
done
|
||||
|
||||
echo; for m in mlr5 ~/tmp/miller/mlr "mlr -S" mlr; do
|
||||
justtime $m --csv --from ~/tmp/big.csv \
|
||||
echo; for mlr in $mlrs; do
|
||||
justtime $mlr --csv --from ~/tmp/big.csv \
|
||||
then put -f scripts/chain-1.mlr \
|
||||
then put -f scripts/chain-1.mlr \
|
||||
then put -f scripts/chain-1.mlr \
|
||||
| md5sum;
|
||||
done
|
||||
|
||||
echo; for m in mlr5 ~/tmp/miller/mlr "mlr -S" mlr; do
|
||||
justtime $m --csv --from ~/tmp/big.csv \
|
||||
echo; for mlr in $mlrs; do
|
||||
justtime $mlr --csv --from ~/tmp/big.csv \
|
||||
then put -f scripts/chain-1.mlr \
|
||||
then put -f scripts/chain-1.mlr \
|
||||
then put -f scripts/chain-1.mlr \
|
||||
|
|
@ -28,8 +30,8 @@ echo; for m in mlr5 ~/tmp/miller/mlr "mlr -S" mlr; do
|
|||
| md5sum;
|
||||
done
|
||||
|
||||
echo; for m in mlr5 ~/tmp/miller/mlr "mlr -S" mlr; do
|
||||
justtime $m --csv --from ~/tmp/big.csv \
|
||||
echo; for mlr in $mlrs; do
|
||||
justtime $mlr --csv --from ~/tmp/big.csv \
|
||||
then put -f scripts/chain-1.mlr \
|
||||
then put -f scripts/chain-1.mlr \
|
||||
then put -f scripts/chain-1.mlr \
|
||||
|
|
@ -38,8 +40,8 @@ echo; for m in mlr5 ~/tmp/miller/mlr "mlr -S" mlr; do
|
|||
| md5sum;
|
||||
done
|
||||
|
||||
echo; for m in mlr5 ~/tmp/miller/mlr "mlr -S" mlr; do
|
||||
justtime $m --csv --from ~/tmp/big.csv \
|
||||
echo; for mlr in $mlrs; do
|
||||
justtime $mlr --csv --from ~/tmp/big.csv \
|
||||
then put -f scripts/chain-1.mlr \
|
||||
then put -f scripts/chain-1.mlr \
|
||||
then put -f scripts/chain-1.mlr \
|
||||
|
|
|
|||
|
|
@ -2,37 +2,12 @@
|
|||
|
||||
ourdir=$(dirname $0)
|
||||
|
||||
$ourdir/time-big-file dkvp mlr5
|
||||
$ourdir/time-big-file dkvp ~/tmp/miller/mlr
|
||||
$ourdir/time-big-file dkvp 'mlr -S'
|
||||
$ourdir/time-big-file dkvp mlr
|
||||
echo
|
||||
mlrs="mlr5 ~/tmp/miller/mlr ./mlr"
|
||||
|
||||
$ourdir/time-big-file nidx mlr5
|
||||
$ourdir/time-big-file nidx ~/tmp/miller/mlr
|
||||
$ourdir/time-big-file nidx 'mlr -S'
|
||||
$ourdir/time-big-file nidx mlr
|
||||
echo
|
||||
echo; for mlr in $mlrs; do $ourdir/time-big-file csv $mlr; done
|
||||
echo; for mlr in $mlrs; do $ourdir/time-big-file csvlite $mlr; done
|
||||
echo; for mlr in $mlrs; do $ourdir/time-big-file dkvp $mlr; done
|
||||
echo; for mlr in $mlrs; do $ourdir/time-big-file nidx $mlr; done
|
||||
echo; for mlr in $mlrs; do $ourdir/time-big-file xtab $mlr; done
|
||||
echo; for mlr in $mlrs; do $ourdir/time-big-file json $mlr; done
|
||||
|
||||
$ourdir/time-big-file xtab mlr5
|
||||
$ourdir/time-big-file xtab ~/tmp/miller/mlr
|
||||
$ourdir/time-big-file xtab 'mlr -S'
|
||||
$ourdir/time-big-file xtab mlr
|
||||
echo
|
||||
|
||||
$ourdir/time-big-file csv mlr5
|
||||
$ourdir/time-big-file csv ~/tmp/miller/mlr
|
||||
$ourdir/time-big-file csv 'mlr -S'
|
||||
$ourdir/time-big-file csv mlr
|
||||
echo
|
||||
|
||||
$ourdir/time-big-file csvlite mlr5
|
||||
$ourdir/time-big-file csvlite ~/tmp/miller/mlr
|
||||
$ourdir/time-big-file csvlite 'mlr -S'
|
||||
$ourdir/time-big-file csvlite mlr
|
||||
echo
|
||||
|
||||
$ourdir/time-big-file json mlr5
|
||||
$ourdir/time-big-file json ~/tmp/miller/mlr
|
||||
$ourdir/time-big-file json 'mlr -S'
|
||||
$ourdir/time-big-file json mlr
|
||||
|
|
|
|||
1
todo.txt
1
todo.txt
|
|
@ -2,6 +2,7 @@
|
|||
PUNCHDOWN LIST
|
||||
|
||||
* blockers:
|
||||
- more linux perf checks
|
||||
- mlr -O / abor!
|
||||
- --ifs-regex & --ips-regex -- guessing is not safe as evidence by '.' and '|'
|
||||
- big-picture item @ Rmd (csv memes; and beyond); also webdoc intro page
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue