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

  • 相关阅读:
    mac安装搜狗
    idea的阿里代码规范检查
    记录windows10闪屏
    github访问不了
    线程安全问题例子
    简单负载均衡工具类
    git将远程分支回归到指定版本
    minio的使用
    php禁止浏览器使用缓存页面的方法
    百度seo
  • 原文地址:https://www.cnblogs.com/Fred1987/p/15701263.html
Copyright © 2011-2022 走看看