• 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

  • 相关阅读:
    CF1276F
    CF1082F
    CF1366G
    CF1221G
    CentOS7统计某个进程当前的线程数
    centos7备份系统日志
    mysql删除带外键约束的表的方法
    django.db.models.query.QuerySet格式的数据输出
    Linux命令大全
    django创建多对多表三种方法,和ORM操作增删改查
  • 原文地址:https://www.cnblogs.com/Fred1987/p/15701263.html
Copyright © 2020-2023  润新知