<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="">= 基准测试 本节将 Boost.JSON 与两个广泛使用的具有类似功能的库进行性能比较：以高性能著称的 RapidJSON 和以功能丰富著称的JSON for Modern C++ 库（nlohmann/json）。bench 程序测量解析和序列化一组代表典型工作负载的 JSON 的吞吐量。评估的实现包括：</string>
    <string name=":21">使用 &lt;&gt; 解析输入，该资源针对解析后不进行后续修改的场景进行了优化。&lt;&gt; 对象在各次试验之间被复用，使得实现所分配的临时内存得以保留，从而提升性能。</string>
    <string name=":21">描述</string>
    <string name="">*boost*</string>
    <string name="">使用 &lt;&gt; 对输入进行解析，</string>
    <string name="">该资源针对解析后不进行后续修改的场景进行了优化。&lt;<ref_stream_parser>&gt; 对象在各次试验之间被复用，使得实现所分配的临时内存得以保留，从而提升性能。</ref_stream_parser></string>
    <string name="">*boost*</string>
    <string name="">使用 &lt;&gt; 对输入进行解析，</string>
    <string name="">resource&gt;&gt;, which uses the standard C++ allocator, and is designed for general use including mutation of the document after it is parsed. The &lt;<ref_stream_parser>&gt; object is reused between trials, allowing temporary memory allocated by the implementation to persist and improve performance.</ref_stream_parser></string>
    <string name="">*rapidjson(pool)*</string>
    <string name=":39">对输入进行解析，该解析式通过使用</string>
    <string name="">https://rapidjson.org/classrapidjson_1_1_memory_pool_allocator.html[`MemoryPoolAllocator`] 的实例实现的，该分配器针对“仅解析、不修改”的场景进行了优化。持有临时内存的 https://rapidjson.org/classrapidjson_1_1_generic_document.html[`Document`] 对象在多次测试之间不重复使用，否则内存消耗将无限增长，从而导致基准测试结果无效。</string>
    <string name="">*rapidjson*</string>
    <string name=":47">对输入进行解析，该解析是通过使用</string>
    <string name="">使用 https://rapidjson.org/classrapidjson_1_1_crt_allocator.html[`CrtAllocator`] 的实例来实现的，该分配器使用标准 C++ 分配器，适用于通用场景，包括解析后对文档的修改。持有临时内存的 https://rapidjson.org/classrapidjson_1_1_generic_document.html[`Document`] 对象在多次测试之间不重复使用，否则内存消耗将无限增长，导致基准测试结果无效。</string>
    <string name="">*nlohmann*</string>
    <string name="">对输入进行解析，该解析式通过使用静态成员函数</string>
    <string name="">https://nlohmann.github.io/json/classnlohmann_1_1basic__json_ab330c13ba254ea41fbc1c52c5c610f45.html[`json::parse`] 来实现的，该函数使用默认的 `std` 分配器，适用于通用场景，包括解析后对文档的修改。该库未提供复用解析或序列化过程中所用临时存储的接口，因此无法在后续操作中重用这些临时内存。</string>
    <string name="">方法论</string>
    <string name="">首先加载所有输入文件。随后，每种配置会运行足够多的试验次数，以确保总运行时间不少于 5 秒。每次试验会记录所用时间、调用次数（解析或序列化）以及传输的字节数，并以此生成一个样本，同时计算出以 MB/s（兆字节每秒）为单位的吞吐量。每种配置会生成多个样本（目前为五个），剔除其中非中间两个的样本后，对剩余的两个样本取平均值，作为该配置的最终基准测试结果。</string>
    <string name="">输入文件位于 bench/data 目录，按如下方式布局：</string>
    <string name=":78">125KB</string>
    <string name="">Size</string>
    <string name=":78">描述</string>
    <string name="">&amp;lt;&lt;parse_apache_builds_json,*apache_builds.json*&gt;&amp;gt;&lt;/parse_apache_builds_json,*apache_builds.json*&gt;</string>
    <string name="">125KB</string>
    <string name="">来自 Apache Jenkins 安装的数据。</string>
    <string name="">&amp;lt;&lt;parse_canada_json,*canada.json*&gt;&amp;gt;&lt;/parse_canada_json,*canada.json*&gt;</string>
    <string name="">2.2MB</string>
    <string name="">最大的文件，包含大量二元数组。</string>
    <string name="">（该二元数组是由）浮点坐标对（组成的）</string>
    <string name="">&amp;lt;&lt;parse_citm_catalog_json,*citm_catalog.json*&gt;&amp;gt;&lt;/parse_citm_catalog_json,*citm_catalog.json*&gt;</string>
    <string name="">1.69MB</string>
    <string name="">一个包含多种嵌套结构、数据类型和长度的大型 JSON。</string>
    <string name="">&amp;lt;&lt;parse_github_events_json,*github_events.json*&gt;&amp;gt;&lt;/parse_github_events_json,*github_events.json*&gt;</string>
    <string name="">64KB</string>
    <string name="">一份来自 GitHub Events API 的数据导出。</string>
    <string name="">&amp;lt;&lt;parse_gsoc_2018_json,*gsoc-2018.json*&gt;&amp;gt;&lt;/parse_gsoc_2018_json,*gsoc-2018.json*&gt;</string>
    <string name="">3.25MB</string>
    <string name="">Google Summer of Code 2018 data.</string>
    <string name="">&amp;lt;&lt;parse_instruments_json,*instruments.json*&gt;&amp;gt;&lt;/parse_instruments_json,*instruments.json*&gt;</string>
    <string name="">216KB</string>
    <string name="">一个由大型对象组成的数组。</string>
    <string name="">&amp;lt;&lt;parse_marine_ik_json,*marine_ik.json*&gt;&amp;gt;&lt;/parse_marine_ik_json,*marine_ik.json*&gt;</string>
    <string name="">2.91MB</string>
    <string name="">一个以 JSON 格式序列化的 three.js 示例模型。</string>
    <string name="">&amp;lt;&lt;parse_mesh_json,*mesh.json*&gt;&amp;gt;&lt;/parse_mesh_json,*mesh.json*&gt;</string>
    <string name="">707KB</string>
    <string name="">一个表示三维网格的 JSON ，（该 JSON ）包含大量浮点数。</string>
    <string name="">&amp;lt;&lt;parse_mesh_pretty_json,*mesh.pretty.json*&gt;&amp;gt;&lt;/parse_mesh_pretty_json,*mesh.pretty.json*&gt;</string>
    <string name="">1.54MB</string>
    <string name="">添加了空格的 mesh.json。</string>
    <string name="">&amp;lt;&lt;parse_numbers_json,*numbers.json*&gt;&amp;gt;&lt;/parse_numbers_json,*numbers.json*&gt;</string>
    <string name="">147KB</string>
    <string name="">一个仅包含浮点数的数组。</string>
    <string name="">&amp;lt;&lt;parse_random_json,*random.json*&gt;&amp;gt;&lt;/parse_random_json,*random.json*&gt;</string>
    <string name="">499KB</string>
    <string name="">一个包含大量 Cyrillic （西里尔）字符的 JSON。</string>
    <string name="">&amp;lt;&lt;parse_twitter_json,*twitter.json*&gt;&amp;gt;&lt;/parse_twitter_json,*twitter.json*&gt;</string>
    <string name="">617KB</string>
    <string name=":90">一份来自 Twitter API 的数据导出。</string>
    <string name="">&amp;lt;&lt;parse_twitterescaped_json,*twitterescaped.json*&gt;&amp;gt;&lt;/parse_twitterescaped_json,*twitterescaped.json*&gt;</string>
    <string name="">550KB</string>
    <string name="">twitter.json ，是移除空格并将非 ASCII 字符替换为</string>
    <string name="">Unicode 转义符的。</string>
    <string name="">&amp;lt;&lt;parse_update_center_json,*update-center.json*&gt;&amp;gt;&lt;/parse_update_center_json,*update-center.json*&gt;</string>
    <string name="">521KB</string>
    <string name=":135">一份来自 Twitter API 的数据导出。</string>
    <string name="">"测试所用硬件：  **Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz**, Windows 10, 32GB RAM."</string>
    <string name="">编译器及优化选项: gcc 8.1 (-O3), clang 12.0 (-O3), and msvc 19.26 (/O2).</string>
    <string name="">解析</string>
    <string name="">解析 apache_builds.json</string>
    <string name="">image::images/parse_apache_builds.png[width=668,align=\"left\"]</string>
    <string name="">解析 canada.json</string>
    <string name="">image::images/parse_canada.png[width=668,align=\"left\"]</string>
    <string name="">解析 citm_catalog.json</string>
    <string name="">image::images/parse_citm_catalog.png[width=668,align=\"left\"]</string>
    <string name="">解析 github_events.json</string>
    <string name="">image::images/parse_github_events.png[width=668,align=\"left\"]</string>
    <string name="">解析 gsoc-2018.json</string>
    <string name="">image::images/parse_gsoc_2018.png[width=668,align=\"left\"]</string>
    <string name="">解析 instruments.json</string>
    <string name="">image::images/parse_instruments.png[width=668,align=\"left\"]</string>
    <string name="">解析 marine_ik.json</string>
    <string name="">image::images/parse_marine_ik.png[width=668,align=\"left\"]</string>
    <string name="">解析 mesh.json</string>
    <string name="">image::images/parse_mesh.png[width=668,align=\"left\"]</string>
    <string name="">解析 mesh.pretty.json</string>
    <string name="">image::images/parse_mesh_pretty.png[width=668,align=\"left\"]</string>
    <string name="">解析 numbers.json</string>
    <string name="">image::images/parse_numbers.png[width=668,align=\"left\"]</string>
    <string name="">解析 random.json</string>
    <string name="">image::images/parse_random.png[width=668,align=\"left\"]</string>
    <string name="">解析 twitter.json</string>
    <string name="">image::images/parse_twitter.png[width=668,align=\"left\"]</string>
    <string name="">解析 twitterescaped.json</string>
    <string name="">image::images/parse_twitterescaped.png[width=668,align=\"left\"]</string>
    <string name="">解析 update-center.json</string>
    <string name="">image::images/parse_update_center.png[width=668,align=\"left\"]</string>
    <string name="">序列化</string>
    <string name="">序列化 canada.json</string>
    <string name="">image::images/serialize_canada.png[width=668,align=\"left\"]</string>
    <string name="">序列化 citm_catalog.json</string>
    <string name="">image::images/serialize_citm_catalog.png[width=668,align=\"left\"]</string>
    <string name="">序列化 github_events.json</string>
    <string name="">image::images/serialize_github_events.png[width=668,align=\"left\"]</string>
    <string name="">序列化 gsoc-2018.json</string>
    <string name="">image::images/serialize_gsoc_2018.png[width=668,align=\"left\"]</string>
    <string name="">序列化 instruments.json</string>
    <string name="">image::images/serialize_instruments.png[width=668,align=\"left\"]</string>
    <string name="">序列化 marine_ik.json</string>
    <string name="">image::images/serialize_marine_ik.png[width=668,align=\"left\"]</string>
    <string name="">序列化 mesh.json</string>
    <string name="">image::images/serialize_mesh.png[width=668,align=\"left\"]</string>
    <string name="">序列化 mesh.pretty.json</string>
    <string name="">image::images/serialize_mesh_pretty.png[width=668,align=\"left\"]</string>
    <string name="">序列化 numbers.json</string>
    <string name="">image::images/serialize_numbers.png[width=668,align=\"left\"]</string>
    <string name="">序列化 random.json</string>
    <string name="">image::images/serialize_random.png[width=668,align=\"left\"]</string>
    <string name="">序列化 twitter.json</string>
    <string name="">image::images/serialize_twitter.png[width=668,align=\"left\"]</string>
    <string name="">序列化 twitterescaped.json</string>
    <string name="">image::images/serialize_twitterescaped.png[width=668,align=\"left\"]</string>
    <string name="">序列化 update-center.json</string>
    <string name="">image::images/serialize_update_center.png[width=668,align=\"left\"]</string>
</resources>
