小编Rse*_*eck的帖子

提升精神QI慢

我尝试使用Boost Spirit QI解析TPCH文件.我的实现灵感来自Spirit QI的员工示例(http://www.boost.org/doc/libs/1_52_0/libs/spirit/example/qi/employee.cpp).数据采用csv格式,令牌以"|"分隔.字符.

它工作但很慢(1秒时为20秒).

这是我对lineitem文件的qi语法:

struct lineitem {
    int l_orderkey;
    int l_partkey;
    int l_suppkey;
    int l_linenumber;
    std::string l_quantity;
    std::string l_extendedprice;
    std::string l_discount;
    std::string l_tax;
    std::string l_returnflag;
    std::string l_linestatus;
    std::string l_shipdate;
    std::string l_commitdate;
    std::string l_recepitdate;
    std::string l_shipinstruct;
    std::string l_shipmode;
    std::string l_comment;
};

BOOST_FUSION_ADAPT_STRUCT( lineitem,
    (int, l_orderkey)
    (int, l_partkey)
    (int, l_suppkey)
    (int, l_linenumber)
    (std::string, l_quantity)
    (std::string, l_extendedprice)
    (std::string, l_discount)
    (std::string, l_tax)
    (std::string, l_returnflag)
    (std::string, l_linestatus)
    (std::string, l_shipdate)
    (std::string, l_commitdate)
    (std::string, l_recepitdate)
    (std::string, l_shipinstruct)
    (std::string, l_shipmode)
    (std::string, l_comment)) 

vector<lineitem>* lineitems=new …
Run Code Online (Sandbox Code Playgroud)

c++ csv parsing boost-spirit boost-spirit-qi

7
推荐指数
1
解决办法
2181
查看次数

标签 统计

boost-spirit ×1

boost-spirit-qi ×1

c++ ×1

csv ×1

parsing ×1