From ba7d70153c2ca19863c06ca30fe30d56bae9070c Mon Sep 17 00:00:00 2001 From: John Kerl Date: Fri, 8 Jan 2016 19:06:54 +0000 Subject: [PATCH] compare to mawk as well as awk --- c/containers/lrec.c | 2 ++ c/mapping/stats1_accumulators.c | 5 +++-- c/todo.txt | 6 ------ perf/do-timings.rb | 6 ++++++ 4 files changed, 11 insertions(+), 8 deletions(-) diff --git a/c/containers/lrec.c b/c/containers/lrec.c index ef11a2a67..aa8574c16 100644 --- a/c/containers/lrec.c +++ b/c/containers/lrec.c @@ -73,6 +73,8 @@ void lrec_put(lrec_t* prec, char* key, char* value, char free_flags) { if (pe->free_flags & FREE_ENTRY_VALUE) { free(pe->value); } + if (free_flags & FREE_ENTRY_KEY) + free(key); pe->value = value; if (free_flags & FREE_ENTRY_VALUE) pe->free_flags |= FREE_ENTRY_VALUE; diff --git a/c/mapping/stats1_accumulators.c b/c/mapping/stats1_accumulators.c index a05ff1d57..ca62d9928 100644 --- a/c/mapping/stats1_accumulators.c +++ b/c/mapping/stats1_accumulators.c @@ -555,9 +555,10 @@ static void stats1_percentile_emit(void* pvstate, char* value_field_name, char* char* output_field_name = lhmss_get(pstate->poutput_field_names, stats1_acc_name); if (output_field_name == NULL) { output_field_name = mlr_paste_3_strings(value_field_name, "_", stats1_acc_name); - lhmss_put(pstate->poutput_field_names, mlr_strdup_or_die(stats1_acc_name), mlr_strdup_or_die(output_field_name), FREE_ENTRY_KEY|FREE_ENTRY_VALUE); + lhmss_put(pstate->poutput_field_names, mlr_strdup_or_die(stats1_acc_name), + mlr_strdup_or_die(output_field_name), FREE_ENTRY_KEY|FREE_ENTRY_VALUE); } - lrec_put(poutrec, output_field_name, s, FREE_ENTRY_KEY|FREE_ENTRY_VALUE); + lrec_put(poutrec, mlr_strdup_or_die(output_field_name), s, FREE_ENTRY_KEY|FREE_ENTRY_VALUE); } static void stats1_percentile_free(stats1_acc_t* pstats1_acc) { stats1_percentile_state_t* pstate = pstats1_acc->pvstate; diff --git a/c/todo.txt b/c/todo.txt index 6b9977e3f..a99c9b53e 100644 --- a/c/todo.txt +++ b/c/todo.txt @@ -6,18 +6,12 @@ BUGFIXES ================================================================ TOP OF LIST - -* lhms* incorporate free-flags as with slls - ? memory leak on hashput w/ existing key? - - re-valgrind * mv_format_val in case string is allocated. modify semantics to nullify the arg? -* more rid of "double" in fcn names * join: final sllv_free in destructor (lo-pri) * light edit on utf8 page * --mmap/--no-mmap @ mlr -h * debian screenshot -* termcvt flins & rework that page * ruby @ optextdep @ mld; poki+mkman * profile new streqn vs. strncmp ... diff --git a/perf/do-timings.rb b/perf/do-timings.rb index 23469c54d..fe650b3ab 100755 --- a/perf/do-timings.rb +++ b/perf/do-timings.rb @@ -29,6 +29,7 @@ run("catc", "catc < ../data/big.dkvp > /dev/null") run("catc", "catc ../data/big.dkvp > /dev/null") run("catm", "catm ../data/big.dkvp > /dev/null") run("catawk", "awk -F, '{print}' ../data/big.dkvp > /dev/null") +run("catmawk", "mawk -F, '{print}' ../data/big.dkvp > /dev/null") run("CATMLR", "mlr --no-mmap cat ../data/big.dkvp > /dev/null") run("CATMLRM", "mlr --mmap cat ../data/big.dkvp > /dev/null") puts @@ -40,6 +41,7 @@ run("catcv", "catc < ../data/big.csv > /dev/null") run("catcv", "catc ../data/big.csv > /dev/null") run("catmv", "catm ../data/big.csv > /dev/null") run("catawkv", "awk -F, '{print}' ../data/big.csv > /dev/null") +run("catmawkv", "mawk -F, '{print}' ../data/big.csv > /dev/null") run("CATMLRV", "mlr --no-mmap --csv --rs lf cat ../data/big.csv > /dev/null") run("CATMLRVM", "mlr --mmap --csv --rs lf cat ../data/big.csv > /dev/null") run("CATMLRV", "mlr --no-mmap --csvlite cat ../data/big.csv > /dev/null") @@ -49,6 +51,7 @@ puts run("cutcut", "cut -d , -f 1,4 ../data/big.dkvp > /dev/null") run("cutawk", "awk -F, '{print $1,$4}' ../data/big.dkvp > /dev/null") +run("cutmawk", "mawk -F, '{print $1,$4}' ../data/big.dkvp > /dev/null") run("CUTMLR", "mlr --no-mmap cut -f a,x ../data/big.dkvp > /dev/null") run("CUTMLRM", "mlr --mmap cut -f a,x ../data/big.dkvp > /dev/null") run("CUTMLRX", "mlr --no-mmap cut -x -f a,x ../data/big.dkvp > /dev/null") @@ -57,6 +60,7 @@ puts run("cutcutv", "cut -d , -f 1,4 ../data/big.csv > /dev/null") run("cutawkv", "awk -F, '{print $1,$4}' ../data/big.csv > /dev/null") +run("cutmawkv", "mawk -F, '{print $1,$4}' ../data/big.csv > /dev/null") run("CUTMLRV", "mlr --no-mmap --csv --rs lf cut -f a,x ../data/big.csv > /dev/null") run("CUTMLRVM", "mlr --mmap --csv --rs lf cut -f a,x ../data/big.csv > /dev/null") run("CUTMLRXV", "mlr --no-mmap --csv --rs lf cut -x -f a,x ../data/big.csv > /dev/null") @@ -82,11 +86,13 @@ puts puts run("addawk", "awk -F, '{gsub(\"x=\",\"\",$4);gsub(\"y=\",\"\",$5);print $4+$5}' ../data/big.dkvp > /dev/null") +run("addmawk", "mawk -F, '{gsub(\"x=\",\"\",$4);gsub(\"y=\",\"\",$5);print $4+$5}' ../data/big.dkvp > /dev/null") run("ADDMLR", "mlr --no-mmap put '$z=$x+$y' ../data/big.dkvp > /dev/null") run("ADDMLRM", "mlr --mmap put '$z=$x+$y' ../data/big.dkvp > /dev/null") puts run("addawkv", "awk -F, '{gsub(\"x=\",\"\",$4);gsub(\"y=\",\"\",$5);print $4+$5}' ../data/big.csv > /dev/null") +run("addmawkv", "mawk -F, '{gsub(\"x=\",\"\",$4);gsub(\"y=\",\"\",$5);print $4+$5}' ../data/big.csv > /dev/null") run("ADDMLRV", "mlr --no-mmap --csv --rs lf put '$z=$x+$y' ../data/big.csv > /dev/null") run("ADDMLRVM", "mlr --mmap --csv --rs lf put '$z=$x+$y' ../data/big.csv > /dev/null") run("ADDMLRV", "mlr --no-mmap --csvlite put '$z=$x+$y' ../data/big.csv > /dev/null")