当前位置: 首页>>代码示例>>C++>>正文


C++ sawyer::Stopwatch类代码示例

本文整理汇总了C++中sawyer::Stopwatch的典型用法代码示例。如果您正苦于以下问题:C++ Stopwatch类的具体用法?C++ Stopwatch怎么用?C++ Stopwatch使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了Stopwatch类的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: report

Totals
bgl_time_remove_vertex()
{
    GraphType g;
    start_deadman(2);
    while (!had_alarm && boost::num_vertices(g)<MAX_VERTICES)
        boost::add_vertex(g);
    GraphSize gsize = bgl_size(g);
    size_t nv_orig = gsize.first;

    // Vertex removal is SO SLOW that we need more time to measure it accurately.  To quote from chapter 11 "Performance
    // Guidelines" of the the "Boost Graph Library: User Guide and Reference Manual" book,
    //     Other variations [than list-list] of adjacency list perform horribly on this operation because its
    //     implementation is not of constant time complexity.
    start_deadman(6);
    Sawyer::Stopwatch t;
    for (size_t i=0; i<nv_orig && !had_alarm; ++i) {
        // Note that this won't work generically.  It's only good for graphs where vertices are numbered sequentially across
        // the entire graph.
        typename boost::graph_traits<GraphType>::vertex_descriptor v = rand() % boost::num_vertices(g);
        boost::remove_vertex(v, g);
    }
    t.stop();
    size_t nremoved = nv_orig - boost::num_vertices(g);
    return report("vert erase", gsize, nremoved, t, "verts/s");
}
开发者ID:Sciumo,项目名称:rose,代码行数:26,代码来源:graphPerformance.C

示例2: Totals

static Totals
report(const std::string &title, const GraphSize gsize, size_t count, const Sawyer::Stopwatch &t, const std::string &units)
{
    printf("  %-16s (%13s %13s) %13s / %6.3f  ",
           title.c_str(),
           pretty(gsize.first).c_str(), pretty(gsize.second).c_str(),
           pretty(count).c_str(), t.report());
    double rate = count / t.report();
    if (rate >= 10e9) {
        printf("%13g", rate);
    } else {
        uint64_t irate = rate;
        printf("%13s", pretty(irate).c_str());
    }
    printf(" %s\n", units.c_str());
    return Totals(count, t.report());
}
开发者ID:Sciumo,项目名称:rose,代码行数:17,代码来源:graphPerformance.C

示例3: main

// usage: testSort NTHINGS NTHREADS
int main(int argc, char *argv[]) {
    size_t nvalues = 16;
    size_t nthreads = 1;
    if (argc>1)
        nvalues = strtoul(argv[1], NULL, 0);
    if (argc>2)
        nthreads = strtoul(argv[2], NULL, 0);
    
    std::cerr <<"Generating " <<nvalues <<" values... ";
    Sawyer::Stopwatch generation;
    LinearCongruentialGenerator random;
    std::vector<Thing> values;
    values.reserve(nvalues);
    for (size_t i=0; i<nvalues; ++i) {
        static const int maxval = 1000000;
        values.push_back(Thing(random() % maxval, random() % maxval));
    }
    std::cerr <<"done (" <<generation.stop() <<" seconds)\n";
                         
    std::cerr <<"Sorting with " <<nthreads <<" threads... ";
    Sawyer::Stopwatch sorting;
    rose::ParallelSort::quicksort(&values[0], &values[0]+values.size(), compare, nthreads);
    std::cerr <<"done (" <<sorting.stop() <<" seconds)\n";

    std::cerr <<"Checking results...\n";
    size_t nfailures = 0;
    static const size_t failureLimit = 100;
    for (size_t i=1; i<values.size() && nfailures<failureLimit; ++i) {
        if (!compare(values[i-1], values[i]) && compare(values[i], values[i-1])) {
            std::cerr <<"sort failed: values[" <<i-1 <<", " <<i <<"] = (" <<values[i-1] <<", " <<values[i] <<")\n";
            ++nfailures;
        }
    }
    if (nfailures>=failureLimit)
        std::cerr <<"additional failures suppressed.\n";

    return nfailures ? 1 : 0;
}
开发者ID:InstRO,项目名称:InstRO-ROSE,代码行数:39,代码来源:testSort.C


注:本文中的sawyer::Stopwatch类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。