Ignore:
Timestamp:
Oct 26, 2017, 12:16:10 PM (4 years ago)
Author:
Thierry Delisle <tdelisle@…>
Branches:
aaron-thesis, arm-eh, cleanup-dtors, deferred_resn, demangler, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, resolv-new, with_gc
Children:
6395817
Parents:
4149d9d
Message:

Updated the creation and ctxswitch benchmark to all be consistent and flexible

Location:
src/benchmark/ctxswitch
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • src/benchmark/ctxswitch/cfa_cor.c

    r4149d9d rb7170a64  
    1 #include <fstream>
    2 #include <stdlib>
     1#include <stdio.h>
    32#include <thread>
    43
     
    1110}
    1211
    13 void main( GreatSuspender & this )
    14 {
     12void main( GreatSuspender & this ) {
    1513        while( true ) {
    1614                suspend();
    17         }
    18 }
    19 
    20 void resumer( GreatSuspender & this, const unsigned int NoOfTimes ) {
    21         for ( volatile unsigned int i = 0; i < NoOfTimes; i += 1 ) {
    22                 resume( this );
    2315        }
    2416}
     
    2820
    2921        BENCH(
    30                 resumer( s, NoOfTimes );,
     22                for (size_t i = 0; i < n; i++) {
     23                        resume( s );
     24                },
    3125                result
    3226        )
    3327
    34         sout | result | endl;
     28        printf("%llu\n", result);
    3529}
  • src/benchmark/ctxswitch/cfa_thrd.c

    r4149d9d rb7170a64  
    1 #include <fstream>
    2 #include <stdlib>
     1#include <stdio.h>
    32#include <thread>
    43
    54#include "bench.h"
    65
    7 int main() {
    8         const unsigned int NoOfTimes = N;
    9         long long int StartTime, EndTime;
     6int main(int argc, char* argv[]) {
     7        BENCH(
     8                for (size_t i = 0; i < n; i++) {
     9                        yield();
     10                },
     11                result
     12        )
    1013
    11         StartTime = Time();
    12         for ( volatile unsigned int i = 0; i < NoOfTimes; i += 1 ) {
    13                 yield();
    14         }
    15         EndTime = Time();
    16 
    17         sout | ( EndTime - StartTime ) / NoOfTimes | endl;
     14        printf("%llu\n", result);
    1815}
  • src/benchmark/ctxswitch/pthreads.c

    r4149d9d rb7170a64  
    66#include "bench.h"
    77
    8 int main() {
    9         const unsigned int NoOfTimes = N;
    10         long long int StartTime, EndTime;
     8int main(int argc, char* argv[]) {
     9        BENCH(
     10                for (size_t i = 0; i < n; i++) {
     11                        sched_yield();
     12                },
     13                result
     14        )
    1115
    12         StartTime = Time();
    13         for ( volatile unsigned int i = 0; i < NoOfTimes; i += 1 ) {
    14                 sched_yield();
    15         }
    16         EndTime = Time();
    17 
    18         printf("%lld\n", ( EndTime - StartTime ) / NoOfTimes );
     16        printf("%llu\n", result);
    1917}
  • src/benchmark/ctxswitch/upp_cor.cc

    r4149d9d rb7170a64  
     1#include <cstdio>
     2
     3#include "bench.h"
     4
     5_Coroutine GreatSuspender {
     6public:
     7        GreatSuspender() {
     8                resume();
     9        }
     10
     11        void do_resume() {
     12                resume();
     13        }
     14private:
     15        void main() {
     16                while( true ) {
     17                        suspend();
     18                }
     19        }
     20};
     21
     22int main(int argc, char* argv[]) {
     23        GreatSuspender s;
     24
     25        BENCH(
     26                for (size_t i = 0; i < n; i++) {
     27                        s.do_resume();
     28                },
     29                result
     30        )
     31
     32        printf("%llu\n", result);
     33}
  • src/benchmark/ctxswitch/upp_thrd.cc

    r4149d9d rb7170a64  
     1#include <cstdio>
     2
     3#include "bench.h"
     4
     5int main(int argc, char* argv[]) {
     6        BENCH(
     7                for (size_t i = 0; i < n; i++) {
     8                        uThisTask().yield();
     9                },
     10                result
     11        )
     12
     13        printf("%llu\n", result);
     14}
Note: See TracChangeset for help on using the changeset viewer.