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

  • 相关阅读:
    MyBatis基础面试题
    MyBatis面试题
    Spring MVC @RequestBody自动转JSON HTTP415错误解决方法
    【GDKOI 2016】地图 map 类插头DP
    【Codechef FRBSUM】【FJOI2016】【BZOJ4299】【BZOJ 4408】 可持久化线段树
    【NOI2005】聪聪和可可 概率与期望 记忆化搜索
    【bzoj 1076】【SCOI2008】奖励关
    BZOJ 1009 HNOI 2008 GT考试 递推+矩乘
    BZOJ 3809 Gty的二逼妹子序列
    BZOJ 2821作诗(Poetize) 分块
  • 原文地址:https://www.cnblogs.com/Fred1987/p/15701263.html
Copyright © 2011-2022 走看看