From 705bb62fac2a79ed3e04232cc831645c852cc1a2 Mon Sep 17 00:00:00 2001 From: Jonathan Rajotte Julien Date: Wed, 6 Aug 2014 10:13:48 -0400 Subject: [PATCH] Mi & save/load: add option to indent or not on config writer creation The presence of tabulation and newline in mi is irrelevant and can impact client performance. The parsing & processing of a lot of data from mi with many /t and /n impact performance. This aim to fix the problem at the source. Style is useless for machine. Signed-off-by: Jonathan Rajotte Julien Signed-off-by: David Goulet --- src/bin/lttng-sessiond/save.c | 2 +- src/common/config/config.c | 8 ++++---- src/common/config/config.h | 5 ++++- src/common/mi-lttng.c | 2 +- 4 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/bin/lttng-sessiond/save.c b/src/bin/lttng-sessiond/save.c index 2aefae03e..e2c93b4bb 100644 --- a/src/bin/lttng-sessiond/save.c +++ b/src/bin/lttng-sessiond/save.c @@ -1514,7 +1514,7 @@ int save_session(struct ltt_session *session, } file_opened = 1; - writer = config_writer_create(fd); + writer = config_writer_create(fd, 1); if (!writer) { ret = LTTNG_ERR_NOMEM; goto end; diff --git a/src/common/config/config.c b/src/common/config/config.c index a1ad95e46..4a07e9947 100644 --- a/src/common/config/config.c +++ b/src/common/config/config.c @@ -354,7 +354,7 @@ end: } LTTNG_HIDDEN -struct config_writer *config_writer_create(int fd_output) +struct config_writer *config_writer_create(int fd_output, int indent) { int ret; struct config_writer *writer; @@ -380,12 +380,12 @@ struct config_writer *config_writer_create(int fd_output) ret = xmlTextWriterSetIndentString(writer->writer, BAD_CAST config_xml_indent_string); - if (ret) { + if (ret) { goto error_destroy; } - ret = xmlTextWriterSetIndent(writer->writer, 1); - if (ret) { + ret = xmlTextWriterSetIndent(writer->writer, indent); + if (ret) { goto error_destroy; } diff --git a/src/common/config/config.h b/src/common/config/config.h index 9a5671ab0..2fed612a1 100644 --- a/src/common/config/config.h +++ b/src/common/config/config.h @@ -81,11 +81,14 @@ int config_parse_value(const char *value); * fd_output File to which the XML content must be written. The file will be * closed once the config_writer has been destroyed. * + * indent If other than 0 the XML will be pretty printed + * with indentation and newline. + * * Returns an instance of a configuration writer on success, NULL on * error. */ LTTNG_HIDDEN -struct config_writer *config_writer_create(int fd_output); +struct config_writer *config_writer_create(int fd_output, int indent); /* * Destroy an instance of a configuration writer. diff --git a/src/common/mi-lttng.c b/src/common/mi-lttng.c index fc7207cb4..83df149f2 100644 --- a/src/common/mi-lttng.c +++ b/src/common/mi-lttng.c @@ -354,7 +354,7 @@ struct mi_writer *mi_lttng_writer_create(int fd_output, int mi_output_type) goto end; } if (mi_output_type == LTTNG_MI_XML) { - mi_writer->writer = config_writer_create(fd_output); + mi_writer->writer = config_writer_create(fd_output, 0); if (!mi_writer->writer) { goto err_destroy; } -- 2.34.1