Changeset b7170a64 for src/benchmark/ctxswitch
- Timestamp:
- Oct 26, 2017, 12:16:10 PM (8 years ago)
- Branches:
- ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
- Children:
- 6395817
- Parents:
- 4149d9d
- 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> 3 2 #include <thread> 4 3 … … 11 10 } 12 11 13 void main( GreatSuspender & this ) 14 { 12 void main( GreatSuspender & this ) { 15 13 while( true ) { 16 14 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 );23 15 } 24 16 } … … 28 20 29 21 BENCH( 30 resumer( s, NoOfTimes );, 22 for (size_t i = 0; i < n; i++) { 23 resume( s ); 24 }, 31 25 result 32 26 ) 33 27 34 sout | result | endl;28 printf("%llu\n", result); 35 29 } -
src/benchmark/ctxswitch/cfa_thrd.c
r4149d9d rb7170a64 1 #include <fstream> 2 #include <stdlib> 1 #include <stdio.h> 3 2 #include <thread> 4 3 5 4 #include "bench.h" 6 5 7 int main() { 8 const unsigned int NoOfTimes = N; 9 long long int StartTime, EndTime; 6 int main(int argc, char* argv[]) { 7 BENCH( 8 for (size_t i = 0; i < n; i++) { 9 yield(); 10 }, 11 result 12 ) 10 13 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); 18 15 } -
src/benchmark/ctxswitch/pthreads.c
r4149d9d rb7170a64 6 6 #include "bench.h" 7 7 8 int main() { 9 const unsigned int NoOfTimes = N; 10 long long int StartTime, EndTime; 8 int main(int argc, char* argv[]) { 9 BENCH( 10 for (size_t i = 0; i < n; i++) { 11 sched_yield(); 12 }, 13 result 14 ) 11 15 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); 19 17 } -
src/benchmark/ctxswitch/upp_cor.cc
r4149d9d rb7170a64 1 #include <cstdio> 2 3 #include "bench.h" 4 5 _Coroutine GreatSuspender { 6 public: 7 GreatSuspender() { 8 resume(); 9 } 10 11 void do_resume() { 12 resume(); 13 } 14 private: 15 void main() { 16 while( true ) { 17 suspend(); 18 } 19 } 20 }; 21 22 int 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 5 int 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.