zoukankan      html  css  js  c++  java
  • C++ simdjson from beginning

    1.Download package

    wget http://archive.ubuntu.com/ubuntu/pool/universe/s/simdjson/libsimdjson5_0.7.1-1_amd64.deb

    2.Install simdjson package in Ubuntu

    sudo dpkg -i libsimdjson5_0.7.1-1_amd64.deb

    3.Check wether the simdjson is installed in Ubuntu

    apt list |grep simdjson

     Confirmed that the simdjson is installed in Ubuntu successfully

    4.Download simdjson.cpp simdjson.h and some json file for materials

    wget https://raw.githubusercontent.com/simdjson/simdjson/master/singleheader/simdjson.h https://raw.githubusercontent.com/simdjson/simdjson/master/singleheader/simdjson.cpp  https://filesamples.com/samples/code/json/sample2.json 

    When vim the material json file,it looks like below

    {
       "firstName": "Joe",
       "lastName": "Jackson",
       "gender": "male",
       "age": 28,
       "address": {
           "streetAddress": "101",
           "city": "San Diego",
           "state": "CA"
       },
       "phoneNumbers": [
           { "type": "home", "number": "7349282382" }
       ]
    }

    5.Write the cpp test program 

    #include <iostream>
    #include <uuid/uuid.h>
    #include <ostream>
    #include <fstream>
    #include "simdjson.h"
    
    void simdjson6();
    
    int main()
    {
        simdjson6();
        return 0;
    }
    
    void simdjson6()
    {
        ondemand::parser simdParser;
        padded_string jsonFile=padded_string::load("sample2.json");
        ondemand::document doc=simdParser.iterate(jsonFile); 
        auto firstName=doc["firstName"];
        cout<<"FirstName="<<firstName<<endl;
    
        auto city= doc["address"]["city"];
        cout<<"City ="<<city<<endl;
        
        auto streetAddress=doc["address"]["streetAddress"];
        cout<<"streetAddress="<<streetAddress<<endl; 
        cout<<"Finished in simdjson6() and now is "<<getTimeNow()<<endl;
    }

    6.Compile with simdjson.cpp via g++.

    Be patient it will takes tens seconds.

    g++ -g -std=c++2a -I. simdjson.cpp h1.cpp -o h1 -luuid

    7.Run  ./h1

  • 相关阅读:
    阿里云ssh断开处理办法
    OSSIM安装使用教程(OSSIM-5.6.5)
    MySQL字符串列与整数比较
    Linux获取so/ko文件版本号教程
    Linux服务器后门自动化查杀教程
    最强半自动化抓鸡工具打造思路
    渗透测试报告中的那些名词解释
    ELK+MySQL出现大量重复记录问题处理
    Python3+SQLAlchemy不使用字段名获取主键值教程
    Python3+SQLAlchemy+Sqlite3实现ORM教程
  • 原文地址:https://www.cnblogs.com/Fred1987/p/15701263.html
Copyright © 2011-2022 走看看