diff --git a/tools/ldb_cmd.cc b/tools/ldb_cmd.cc index 48a0bbbad791fcf4677fb5bed01f5b0cfff64ade..d0878f89473fc4abebb0f069e33238d594910dd1 100644 --- a/tools/ldb_cmd.cc +++ b/tools/ldb_cmd.cc @@ -39,6 +39,7 @@ #include #include #include +#include namespace rocksdb { @@ -835,7 +836,10 @@ void DBLoaderCommand::DoCommand() { int bad_lines = 0; std::string line; - while (getline(std::cin, line, '\n')) { + // prefer ifstream getline performance vs that from std::cin istream + std::ifstream ifs_stdin("/dev/stdin"); + std::istream* istream_p = ifs_stdin.is_open() ? &ifs_stdin : &std::cin; + while (getline(*istream_p, line, '\n')) { std::string key; std::string value; if (ParseKeyValue(line, &key, &value, is_key_hex_, is_value_hex_)) {