aboutsummaryrefslogtreecommitdiffhomepage
path: root/tensorflow/core/grappler/utils_test.cc
diff options
context:
space:
mode:
authorGravatar A. Unique TensorFlower <gardener@tensorflow.org>2018-09-27 16:10:08 -0700
committerGravatar TensorFlower Gardener <gardener@tensorflow.org>2018-09-27 16:15:11 -0700
commitd8a370274d6ab8c68edcce66849b4e96aed2fa0d (patch)
tree2fc49ea3ab0c7ccc3e3fd1f3bd8151268f015806 /tensorflow/core/grappler/utils_test.cc
parentece50dd9992ac17e3094c7f6d1914febd7a036b5 (diff)
Optimize ParseNodeNameAsStringPiece and related functions, since they are the most costly functions in Grappler.
PiperOrigin-RevId: 214853009
Diffstat (limited to 'tensorflow/core/grappler/utils_test.cc')
-rw-r--r--tensorflow/core/grappler/utils_test.cc19
1 files changed, 19 insertions, 0 deletions
diff --git a/tensorflow/core/grappler/utils_test.cc b/tensorflow/core/grappler/utils_test.cc
index 6b787a6910..9b6c1f690b 100644
--- a/tensorflow/core/grappler/utils_test.cc
+++ b/tensorflow/core/grappler/utils_test.cc
@@ -371,6 +371,25 @@ BM_NodePositionIfSameNode("^foo/bar/baz", "foo/bar/baz", Match_Ctrl);
BM_NodePositionIfSameNode("blah", "foo/bar/baz", NoMatch_0);
BM_NodePositionIfSameNode("foo/bar/baz/gnu", "foo/bar/baz", NoMatch_end);
+#define BM_ParseNodeNameAsStringPiece(I, NAME) \
+ static void BM_ParseNodeNameAsStringPiece_##NAME(int iters) { \
+ string input = I; \
+ for (int i = 0; i < iters; ++i) { \
+ int position; \
+ const StringPiece name = ParseNodeNameAsStringPiece(input, &position); \
+ CHECK_GE(position, -1); \
+ CHECK(!name.empty()); \
+ } \
+ } \
+ BENCHMARK(BM_ParseNodeNameAsStringPiece_##NAME)
+
+BM_ParseNodeNameAsStringPiece("foo", foo);
+BM_ParseNodeNameAsStringPiece("foo/bar/baz", foo_bar_baz);
+BM_ParseNodeNameAsStringPiece("^foo/bar/baz", foo_bar_baz_ctrl);
+BM_ParseNodeNameAsStringPiece("foo:123", foo123);
+BM_ParseNodeNameAsStringPiece("foo/bar/baz:123", foo_bar_baz_123);
+BM_ParseNodeNameAsStringPiece("^foo/bar/baz:123", foo_bar_baz_123_ctrl);
+
} // namespace
} // namespace grappler
} // namespace tensorflow