3
GitHub - tsuna/contextswitch: Little micro-benchmark for Linux to test the cost...
source link: https://github.com/tsuna/contextswitch
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
Little micro-benchmarks to assess the performance overhead of context switching. timesyscall: Benchmarks the overhead of a system call. timectxsw: Benchmarks the overhead of context switching between 2 processes. timetctxsw: Benchmarks the overhead of context switching between 2 threads. timectxswws: Benchmarks the overhead of context switching between 2 processes using a working set of the size specified in argument. timetctxsw2: Benchmarks the overhead of context switching between 2 threads, by using a shed_yield() method. If you do taskset -a 1, all threads should be scheduled on the same processor, so you are really doing thread context switch. Then to be sure that you are really doing it, just do: strace -ff -tt -v taskset -a 1 ./timetctxsw2 Now why sched_yield() is enough for testing ? Because, it place the current thread at the end of the ready queue. So the next ready thread will be scheduled. I also added sched_setscheduler(SCHED_FIFO) to get the best performances.
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK