Simdjson:一个超高速的JSON解析工具
你必要一个像clang或gcc这样的最新编译器。我们提议至少行使GNU GCC / G ++ 7或LLVM clang 6.譬喻,您可以行使brew安装最新的编译器:
可选:您必要通过配置CC和CXX变量汇报cmake您但愿行使哪个编译器。bash下,你可以用诸如呼吁这样做 构建:在项目存储库中,执行以下操纵:
默认环境下,它构建一个共享库(譬喻,Linux上的libsimdjson.so)。 您可以构建一个静态库:
在某些环境下,您也许但愿指定编译器,尤其是在体系上的默认编译器太旧的环境下。您可以按以下步调操纵: 用法(行使Visual Studio在Windows长举办CMake) 我们假设您有一台平凡的Windows PC,至少包括Visual Studio 2017和支持AVX2的x64处理赏罚器(2013 Intel Haswell或更高版本)。 从GitHub获取simdjson代码,譬喻,行使 GitHub Desktop 克隆它; 安装 CMake 。安装时,请确保 在simdjson中建设一个子目次,譬喻 行使shell,转到这个新建设的目次;
最后一个呼吁在新建设的目次中建设了一个Visual Studio办理方案文件(譬喻 Windows,Linux和MacOS上的 vcpkg 用户可以 在Linux和MacOS上:
将构建并安装 在Windows(64位)上:
将构建并安装
将构建并安装 这些呼吁还将打印出有关怎样行使MSBuild或基于CMake的项目库的声名。 假如您发明 json2json mydoc.json json2json -d mydoc.json minify mydoc.json`缩小JSON文档,将功效输出到尺度输出。缩小意味着删除不必要的空格字符。 范畴我们提供快速理会器。它按照各类规格完全验证输入。理会器构建一个有效的不行变(只读)DOM(文档 – 工具模子),往后可以会见它。 为了简化工程,我们做了一些假设: 我们支持UTF-8(以及ASCII),没有此外(没有拉丁语,没有UTF-16)。我们不以为这是一个真正的限定,由于我们以为没有任何严峻的应用措施必要在没有ASCII或UTF-8编码的环境下处理赏罚JSON数据; JSON文档中的全部字符串最多可包括UTF-8(4GB)中的4294967295个字节。要逼迫执行此束缚,我们拒绝理会包括高出4294967295字节(4GB)的文档。这应该顺应大大都JSON文档; 我们假设AVX2支持在AMD和英特尔出产的全部最新主流x86处理赏罚器中都可用。尽量可以完成,但不包罗对非x86处理赏罚器的支持。我们打算支持ARM处理赏罚器(哀求辅佐); 假如产生妨碍,我们只会陈诉妨碍,而不会指出题目的性子。(这可以在不影响机能的环境下轻松改造); 在类型应承的环境下,我们应承工具内的一再键(像sajson这样的其他理会器也这样做); 机能针对超过至少几十千字节到几兆字节的JSON文档举办了优化:必需理会很多小型JSON文档或一个真正复杂的JSON文档的机能题目是差异的。 我们的方针不是提供通用的JSON库。像RapidJSON这样的库提供的不只仅是理会,它还可以辅佐您天生JSON并提供各类其他利便的成果。我们只理会文档。 特性输入字符串未修改,(像sajson和RapidJSON这样的理会器行使输入字符串作为缓冲区)。 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |