Драйвер MongoDB C ++ допускает два способа ( среди прочих ) создания объектов BSON.
На основе в потоке:
auto builder = bsoncxx::builder::stream::document{};
bsoncxx::document::value doc_value = builder
<< "name" << "MongoDB"
<< "type" << "database"
<< "count" << 1
<< "versions" << bsoncxx::builder::stream::open_array
<< "v3.2" << "v3.0" << "v2.6"
<< close_array
<< "info" << bsoncxx::builder::stream::open_document
<< "x" << 203
<< "y" << 102
<< bsoncxx::builder::stream::close_document
<< bsoncxx::builder::stream::finalize;
Основываясь на анализе строки JSON:
std::string doc = "{ "
"\"name\" : \"MongoDB\","
"\"type\" : \"database\","
"\"count\" : 1,"
"\"versions\": [ \"v3.2\", \"v3.0\", \"v2.6\" ],"
"\"info\" : {"
"\"x\" : 203,"
"\"y\" : 102"
"}"
"}";
bsoncxx::document::value bsoncxx::from_json(doc);
Я хотел бы знать, какая из них наиболее удобна с точки зрения производительности.Я склонен думать, что количество вызовов функций, задействованных альтернативой потока «под капотом», будет хуже, чем обработка строки JSON, но это может быть наоборот или быть равным.
Я пыталсянайти некоторую информацию об этом в документации драйвера MongoDB C ++ без удачи.Любая информация действительно приветствуется ... заранее спасибо!