diff options
author | Tor Brede Vekterli <vekterli@yahooinc.com> | 2023-03-06 15:49:26 +0100 |
---|---|---|
committer | Tor Brede Vekterli <vekterli@yahooinc.com> | 2023-03-06 15:49:26 +0100 |
commit | abda412519998eda79ed1bfc96d7a16d877a4f7d (patch) | |
tree | 717d4be6011f7cfae6aa2969ae81cf6371eaf4a2 /vespaclient-java/src/main/java/com/yahoo/vespavisit/VdsVisit.java | |
parent | 67297636d08580a07210b647dc3d65b8f6690f95 (diff) |
Add a "null-rendering" option to `vespa-visit`
This makes it easy to benchmark whether document rendering is a
bottleneck when visiting. For instance, large floating point tensor
fields are notoriously expensive to render as JSON.
This is more accurate than just redirecting the visit output to
`/dev/null` as that still requires documents to be rendered before
being evicted into the void.
Diffstat (limited to 'vespaclient-java/src/main/java/com/yahoo/vespavisit/VdsVisit.java')
-rw-r--r-- | vespaclient-java/src/main/java/com/yahoo/vespavisit/VdsVisit.java | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/vespaclient-java/src/main/java/com/yahoo/vespavisit/VdsVisit.java b/vespaclient-java/src/main/java/com/yahoo/vespavisit/VdsVisit.java index f2ddd4ed8ea..8b919f7e9ea 100644 --- a/vespaclient-java/src/main/java/com/yahoo/vespavisit/VdsVisit.java +++ b/vespaclient-java/src/main/java/com/yahoo/vespavisit/VdsVisit.java @@ -381,6 +381,13 @@ public class VdsVisit { .type(Number.class) .build()); + options.addOption(Option.builder() + .longOpt("nullrender") + .desc("Process documents, but do not render any output. Overrides all other output options. " + + "Used to benchmark whether document rendering is the bottleneck when processing documents.") + .hasArg(false) + .build()); + return options; } @@ -399,6 +406,7 @@ public class VdsVisit { private boolean jsonLinesOutput = false; private boolean tensorShortForm = false; // TODO Vespa 9: change default to true private boolean tensorDirectValues = false; // TODO Vespa 9: change default to true + private boolean nullRender = false; private int slices = 1; private int sliceId = 0; @@ -508,6 +516,14 @@ public class VdsVisit { this.tensorDirectValues = tensorDirectValues; } + public boolean nullRender() { + return nullRender; + } + + public void setNullRender(boolean nullRender) { + this.nullRender = nullRender; + } + public int slices() { return slices; } @@ -660,6 +676,9 @@ public class VdsVisit { if (line.hasOption("tensorvalues")) { allParams.setTensorDirectValues(true); } + if (line.hasOption("nullrender")) { + allParams.setNullRender(true); + } if (line.hasOption("slices") != line.hasOption("sliceid")) { throw new IllegalArgumentException("Both --slices and --sliceid must be specified when visiting with slicing"); } @@ -848,6 +867,7 @@ public class VdsVisit { handlerParams.outputFormat = params.stdOutHandlerOutputFormat(); handlerParams.tensorShortForm = params.tensorShortForm(); handlerParams.tensorDirectValues = params.tensorDirectValues(); + handlerParams.nullRender = params.nullRender(); handler = new StdOutVisitorHandler(handlerParams); if (visitorParameters.getResumeFileName() != null) { |