Ignore:
Timestamp:
Jan 19, 2020, 4:16:27 PM (5 years ago)
Author:
Peter A. Buhr <pabuhr@…>
Branches:
ADT, arm-eh, ast-experimental, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, pthread-emulation, qualifiedEnum
Children:
f090750
Parents:
9e63a2b
Message:

update benchmarks for concurrency paper

Location:
benchmark/ctxswitch
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • benchmark/ctxswitch/cfa_cor.cfa

    r9e63a2b r2316525  
    44#include "bench.h"
    55
    6 coroutine GreatSuspender {};
    7 void main( __attribute__((unused)) GreatSuspender & this ) {
    8         while ( true ) {
     6coroutine C {} c;
     7void main( __attribute__((unused)) C & ) {
     8        while () {
    99                suspend();
    1010        }
     
    1212int main( int argc, char * argv[] ) {
    1313        BENCH_START()
    14         GreatSuspender s;
    1514        BENCH(
    16                 for ( i; times ) {
    17                         resume( s );
     15                for ( times ) {
     16                        resume( c );
    1817                },
    1918                result
  • benchmark/ctxswitch/cfa_cor_then.cfa

    r9e63a2b r2316525  
    66void noOp(void) {}
    77
    8 coroutine GreatSuspender {};
     8coroutine C {} c;
    99
    10 void ?{}( GreatSuspender & this ) {
     10void ?{}( C & this ) {
    1111        prime(this);
    1212}
    1313
    14 void main( __attribute__((unused)) GreatSuspender & this ) {
    15         while( true ) {
     14void main( __attribute__((unused)) C & this ) {
     15        while () {
    1616                suspend_then(noOp);
    1717        }
     
    2020int main( int argc, char * argv[] ) {
    2121        BENCH_START()
    22         GreatSuspender s;
    2322        BENCH(
    24                 for ( i; times ) {
    25                         resume( s );
     23                for ( times ) {
     24                        resume( c );
    2625                },
    2726                result
  • benchmark/ctxswitch/cfa_gen.cfa

    r9e63a2b r2316525  
    33typedef struct {
    44        void * next;
    5 } GreatSuspender;
     5} C;
    66
    7 void comain( GreatSuspender * this ) {
    8         if ( __builtin_expect(this->next != 0, 1) ) goto *(this->next);
    9         this->next = &&s1;
     7void comain( C * c ) {
     8        if ( __builtin_expect(c->next != 0, 1) ) goto *(c->next);
     9        c->next = &&s1;
    1010        for () {
    1111                return;
     
    1616int main( int argc, char * argv[] ) {
    1717        BENCH_START()
    18         GreatSuspender s = { 0 };
     18        C c = { 0 };
    1919        BENCH(
    20                 for ( i; times ) {
    21                         comain( &s );
     20                for ( times ) {
     21                        comain( &c );
    2222                },
    2323                result
  • benchmark/ctxswitch/cfa_thrd.cfa

    r9e63a2b r2316525  
    66        BENCH_START()
    77        BENCH(
    8                 for ( i; times ) {
     8                for ( times ) {
    99                        yield();
    1010                },
  • benchmark/ctxswitch/cfa_thrd2.cfa

    r9e63a2b r2316525  
    88
    99void main(__attribute__((unused)) Fibre & this) {
    10         while(!done) {
     10        while ( ! done ) {
    1111                yield();
    1212        }
     
    1717        Fibre f1;
    1818        BENCH(
    19                 for ( i; times ) {
     19                for ( times ) {
    2020                        yield();
    2121                },
  • benchmark/ctxswitch/python_cor.py

    r9e63a2b r2316525  
    99        times = int( sys.argv[1] )
    1010
    11 def GreatSuspender():
     11def C():
    1212        while True:
    1313                yield
    1414
    15 s = GreatSuspender()
     15c = C()
    1616
    1717start = time.time_ns()
    1818for i in range( 10000000 ):
    19         next( s )  # resume
     19        next( c )  # resume
    2020end = time.time_ns()
    2121print( (end - start) / times )
  • benchmark/ctxswitch/upp_cor.cc

    r9e63a2b r2316525  
    33#include "bench.h"
    44
    5 _Coroutine GreatSuspender {
     5_Coroutine C {
    66        void main() {
    77                while( true ) {
     
    1313                resume();
    1414        }
    15 };
     15} c;
    1616int main( int argc, char * argv[] ) {
    1717        BENCH_START()
    18         GreatSuspender s;
    1918        BENCH(
    2019                for (size_t i = 0; i < times; i++) {
    21                         s.do_resume();
     20                        c.do_resume();
    2221                },
    2322                result
Note: See TracChangeset for help on using the changeset viewer.