WIN下nativejson-benchmark框架的使用

前言

不推荐使用此框架,不推荐使用此框架,不推荐使用此框架!!!
推荐使用替代项目:cpp-json-test

nativejson-benchmark是一个 C++JSON解析库 基准测试框架。
项目地址: https://github.com/miloyip/nativejson-benchmark

通过此框架,可以直观且”便捷”的 测试出 一个C++JSON解析库的优劣。
旨在帮助开发者深入了解各个库处理JSON数据的能力,以便根据具体需求选择最优解决方案。

事实证明,此项目跨平台兼容性极差,且较长时间未更新,BUG巨多

经过半天的尝试,终于能正常运行了,下面给出基本示例。

1 项目安装、修改和运行

1.1 克隆库

随便找一个文件夹进入,然后在终端执行命令:

git clone https://github.com/miloyip/nativejson-benchmark.git

1.2 更新库文件

进入刚下载的文件夹,执行:

git submodule update --init

1.3 删除大部分库,避免兼容问题

由于许多库已更新,配合此项目存在兼容性问题,建议删除。(成功运行后可以再加回来。)

1.3.1 删除各个库的测试文件

进入src/test/文件夹,保留rapidjsontest.cpp文件,其他全删。
(也可以保留rapidjson开头的全部文件,同一个库的,所以不会冲突。)

(框架是json基准测试,rapidjsontest.cpp测试文件作为本项目的基准,所以不能删。)

1.3.2 删除C语言库文件

进入src/cjsonlibs/文件夹,保留cjson_all.c,其他全删。
(这个文件其实也没用,但是全删了会使项目jsonclib静态库内容为空,不生成,导致链接错误。)

1.3.3 删除库源码文件

进入thirdparty/文件夹,保留cJSONrapidjson文件夹,其他全删。

1.4 生成MSVC解决方案

1.4.1 下载premake5.exe,放入build/文件夹

https://premake.github.io/download/

官网提供了构建好的二进制版本,直接下载解压,然后复制粘贴就行了。

1.4.2 修改build/premake5.lue

重头戏!!

lua脚本写的真是一拖答辩,很多地方需要修改……
使用任意文本编辑器打开build/premake5.lue文件,建议编辑器的查找功能,不然容易漏掉。

至少需要修改如下内容:

  • 第17行的buildoptions指令,右侧字符串内容删除-Wextra参数。
    (改成 buildoptions "-march=native -Wall"。因为MSVC不支持此参数。)
  • 查找全部configuration命令,都改成configurations
    (有的地方加了s有的地方没加,不加s是错误的命令。别加多了。)
  1. 查找并删除全部flags { "ExtraWarnings" }命令。
    (共两处,81行和177行。这是错误命令。)
  2. 查找全部vs*,都改成vs
    (共两处,88行和230行。因为*是特殊字符,会报错…)
  3. 删除全部linkoptions { "../../thirdparty/ULib/src/ulib/.libs/libulib.a" }命令。
    (两处,269行和152行。显然Windows下不可能有这个.a静态库文件。)

1.4.3 执行premake脚本,生成解决方案

进入build/文件夹,终端执行命令(执行脚本):

premake.bat

可以看到生成了gmakevs2015两个文件。

1.5 使用Visual Studio配置和执行项目

1.5.1 使用Visual Studio打开build/vs2015/benchmark.sln

打开后会提示”检查解决方案操作/重定向项目”之类的,点确定就行了。

1.5.2 修改resultfilename.h文件

Visual Studio解决方案资源器,里面有个nativejson项目,里面有个resultfilename.h文件。

打开此文件,注释或删除第三行的#include machine.h
(根本没有这个文件,没法include,会报错。删除后就好了。)

1.5.3 生成可执行文件

  1. Visual Studio左上角,配置选择成vsx64版本。
  2. 右键jsonclibs项目,点击生成。(bin/文件夹下生成了静态库文件。)
  3. 右键nativejson项目,点击生成。(bin/文件夹下生成了可执行文件。)

1.5.4 运行程序

点击Visual Studio上面的"本地Windows调试器"右侧的下拉箭头,点击"配置启动项目"

"通用属性-配置启动项目-单启动项目" 改成 nativejson 项目。
(不改的话,默认启动jsonclib,那是静态库文件,没法启动……)

确认后,就可以直接点击"本地Windows调试器"启动程序了。

程序运行后,会在result 文件夹中生成结果数据。

1.6 将csv数据转换成html图表

1.6.1 安装minGW

转换需要使用GNU make命令,windows下使用的是mingwmingw32-make命令。

学习过C++的肯定都装过mingw,这里就不赘述了,不会装的自己查。
mingw32-make.exeg++.exe在同个文件夹中,以前配置过的就不用动了。)

1.6.2 安装PHP语言

csv表格到html的转换,是通过php实现的,因此还要安装PHP程序。
PHP是世界上最好的语言( )

安装过程省略,需要设置环境变量,保证终端能直接运行php指令。

1.6.3 生成html图表

进入result/文件夹,在终端输入命令:

mingw32-make

GNU Make会自动读取makefile,调用php,生成.html文件。

2 添加自己的json解析库,并测试和生成图表

别添加了,太痛苦了。 想要测试自己的JSON库解析效率,推荐使用cpp-json-test

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇