]> git.ipfire.org Git - thirdparty/zstd.git/commitdiff
[largeNbDicts] Print more metrics into csv file
authorHan Zhu <zhuhan7737@gmail.com>
Tue, 19 Jul 2022 23:50:28 +0000 (16:50 -0700)
committerHan Zhu <zhuhan7737@gmail.com>
Tue, 19 Jul 2022 23:50:28 +0000 (16:50 -0700)
Summary:
Add column headers and data for whether it's a compression or a decompression
run, compression level, nbDicts and dictAttachPref in additional to
compr/decompr speed.

Test Plan:
Example output:

```
./largeNbDicts
Compression/Decompression,Level,nbDicts,dictAttachPref,Speed
Compression,1,1,0,300.9
Compression,1,1,1,296.4
Compression,1,1,2,307.8
Compression,1,10,0,292.3
Compression,1,100,0,293.3
Compression,3,110,0,106.0
Decompression,-1,110,-1,155.6
Decompression,-1,110,-1,709.4
Decompression,-1,120,-1,709.1
Decompression,-1,120,-1,734.6
```

contrib/largeNbDicts/largeNbDicts.c

index f1a80c8e154c859d1d9def0d6a5d14b13fe83afe..bb1c16d47a083c50cd366d6a1c746f67839fc36f 100644 (file)
@@ -716,12 +716,28 @@ static int benchMem(slice_collection_t dstBlocks,
         csvFile = fopen(csvFileName, "wt");
         assert(csvFile);
         fprintf(csvFile, "%s\n", exeName);
+        /* Print table headers */
+        fprintf(
+            csvFile,
+            "Compression/Decompression,Level,nbDicts,dictAttachPref,Speed\n");
     } else {
         fclose(csvFile);
         csvFile = fopen(csvFileName, "at");
         assert(csvFile);
     }
-    fprintf(csvFile, "%.1f\n", bestSpeed);
+
+    int cLevel = -1;
+    int dictAttachPref = -1;
+    if (benchCompression) {
+      ZSTD_CCtxParams_getParameter(cctxParams, ZSTD_c_compressionLevel,
+                                   &cLevel);
+      ZSTD_CCtxParams_getParameter(cctxParams, ZSTD_c_forceAttachDict,
+                                   &dictAttachPref);
+    }
+    fprintf(csvFile, "%s,%d,%ld,%d,%.1f\n",
+            benchCompression ? "Compression" : "Decompression", cLevel,
+            benchCompression ? ci.nbDicts : di.nbDicts, dictAttachPref,
+            bestSpeed);
     fclose(csvFile);
     free(csvFileName);