Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update README.md #5

Closed
wants to merge 1 commit into from
Closed

Update README.md #5

wants to merge 1 commit into from

Conversation

bhoomrs
Copy link
Owner

@bhoomrs bhoomrs commented Feb 5, 2025

Description

Test Steps

Checklist:

  • I have tested my changes. No regression in existing tests.
  • I have modified and/or added unit-tests to cover the code changes in this Pull Request.

Related Issue

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

@bhoomrs bhoomrs closed this Feb 5, 2025
@bhoomrs bhoomrs reopened this Feb 5, 2025
@bhoomrs bhoomrs closed this Feb 5, 2025
@bhoomrs bhoomrs reopened this Feb 5, 2025
@bhoomrs bhoomrs closed this Feb 5, 2025
@bhoomrs bhoomrs reopened this Feb 5, 2025
@bhoomrs
Copy link
Owner Author

bhoomrs commented Feb 5, 2025

This PR is benchmarked on the NXP FRDM-K64F microcontroller board. Here are the results:

** Thread stats [avg, min, max] in nanoseconds **
Spawn (no context switch)               :  19708,  19708,  21375
Create (no context switch)              :    n/a,    n/a,    n/a
Start (no context switch)               :    n/a,    n/a,    n/a
Suspend (no context switch)             :   5541,   5541,   7125
Resume (no context switch)              :   4875,   4875,   6458
Spawn (context switch)                  :  20958,  20958,  22666
Start  (context switch)                 :    n/a,    n/a,    n/a
Suspend (context switch)                :   8250,   8250,   9833
Resume (context switch)                 :   6791,   6791,   8291
Terminate (context switch)              :  16166,  16166,  18583
** Mutex Stats [avg, min, max] in nanoseconds **
Lock (no owner)                         :   3750,   3750,   5333
Unlock (no waiters)                     :   4958,   4958,   6500
Recursive lock                          :   1625,   1583,   3291
Recursive unlock                        :   1750,   1750,   3375
Unlock with unpend (no context switch)  :   5000,   5000,   6500
Unlock with unpend (context switch)     :  13416,  13416,  15000
Pend (no priority inheritance)          :  17625,  17625,  19916
Pend (priority inheritance)             :  20291,  20250,  22708
** Semaphore stats [avg, min, max] in nanoseconds **
Take (context switch)                   :  16166,  16166,  18541
Give (context switch)                   :   9041,   9041,  10583
** Semaphore stats [avg, min, max] in nanoseconds **
Give (no context switch)                :   3208,   3208,   4750
Take (no context switch)                :   2458,   2458,   4083
** Yield stats [avg, min, max] in nanoseconds **
Yield (no context switch)               :   2833,   2833,   4375
Yield (context switch)                  :   2791,   2791,   4291
** Allocation stats [avg, min, max] in nanoseconds **
Malloc                                  :    591,    591,   2250
Free                                    :    558,    558,   2241
** Message queue stats [avg, min, max] in nanoseconds **
Create                                  :    n/a,    n/a,    n/a
Send (no context switch)                :    n/a,    n/a,    n/a
Receive (no context switch)             :    n/a,    n/a,    n/a
Send (context switch)                   :    n/a,    n/a,    n/a
Receive (context switch)                :    n/a,    n/a,    n/a
** Interrupt Stats [avg, min, max] in nanoseconds **

Latency                                 :    458,    458,    458

*** Done! ***


No outliers detected. Great job!

@bhoomrs bhoomrs closed this Feb 5, 2025
@bhoomrs bhoomrs reopened this Feb 5, 2025
@bhoomrs
Copy link
Owner Author

bhoomrs commented Feb 5, 2025

This PR is benchmarked on the NXP FRDM-K64F microcontroller board. Here are the results:

** Thread stats [avg, min, max] in nanoseconds **
Spawn (no context switch)               :  19708,  19708,  21375
Create (no context switch)              :    n/a,    n/a,    n/a
Start (no context switch)               :    n/a,    n/a,    n/a
Suspend (no context switch)             :   5541,   5541,   7125
Resume (no context switch)              :   4875,   4875,   6458
Spawn (context switch)                  :  20958,  20958,  22666
Start  (context switch)                 :    n/a,    n/a,    n/a
Suspend (context switch)                :   8250,   8250,   9833
Resume (context switch)                 :   6791,   6791,   8291
Terminate (context switch)              :  16166,  16166,  18583
** Mutex Stats [avg, min, max] in nanoseconds **
Lock (no owner)                         :   3750,   3750,   5333
Unlock (no waiters)                     :   4958,   4958,   6500
Recursive lock                          :   1625,   1583,   3291
Recursive unlock                        :   1750,   1750,   3375
Unlock with unpend (no context switch)  :   5000,   5000,   6500
Unlock with unpend (context switch)     :  13416,  13416,  15000
Pend (no priority inheritance)          :  17625,  17625,  19916
Pend (priority inheritance)             :  20291,  20250,  22708
** Semaphore stats [avg, min, max] in nanoseconds **
Take (context switch)                   :  16166,  16166,  18541
Give (context switch)                   :   9041,   9041,  10583
** Semaphore stats [avg, min, max] in nanoseconds **
Give (no context switch)                :   3208,   3208,   4750
Take (no context switch)                :   2458,   2458,   4083
** Yield stats [avg, min, max] in nanoseconds **
Yield (no context switch)               :   2833,   2833,   4375
Yield (context switch)                  :   2791,   2791,   4291
** Allocation stats [avg, min, max] in nanoseconds **
Malloc                                  :    591,    591,   2250
Free                                    :    558,    558,   2241
** Message queue stats [avg, min, max] in nanoseconds **
Create                                  :    n/a,    n/a,    n/a
Send (no context switch)                :    n/a,    n/a,    n/a
Receive (no context switch)             :    n/a,    n/a,    n/a
Send (context switch)                   :    n/a,    n/a,    n/a
Receive (context switch)                :    n/a,    n/a,    n/a
** Interrupt Stats [avg, min, max] in nanoseconds **

Latency                                 :    458,    458,    458

*** Done! ***


No outliers detected. Great job!

@bhoomrs bhoomrs closed this Feb 5, 2025
@bhoomrs bhoomrs reopened this Feb 5, 2025
@bhoomrs
Copy link
Owner Author

bhoomrs commented Feb 5, 2025

This PR is benchmarked on the NXP FRDM-K64F microcontroller board. Here are the results:

** Thread stats [avg, min, max] in nanoseconds **
Spawn (no context switch)               :  19708,  19708,  21375
Create (no context switch)              :    n/a,    n/a,    n/a
Start (no context switch)               :    n/a,    n/a,    n/a
Suspend (no context switch)             :   5541,   5541,   7125
Resume (no context switch)              :   4875,   4875,   6458
Spawn (context switch)                  :  20958,  20958,  22666
Start  (context switch)                 :    n/a,    n/a,    n/a
Suspend (context switch)                :   8250,   8250,   9833
Resume (context switch)                 :   6791,   6791,   8291
Terminate (context switch)              :  16166,  16166,  18583
** Mutex Stats [avg, min, max] in nanoseconds **
Lock (no owner)                         :   3750,   3750,   5333
Unlock (no waiters)                     :   4958,   4958,   6500
Recursive lock                          :   1625,   1583,   3291
Recursive unlock                        :   1750,   1750,   3375
Unlock with unpend (no context switch)  :   5000,   5000,   6500
Unlock with unpend (context switch)     :  13416,  13416,  15000
Pend (no priority inheritance)          :  17625,  17625,  19916
Pend (priority inheritance)             :  20291,  20250,  22708
** Semaphore stats [avg, min, max] in nanoseconds **
Take (context switch)                   :  16166,  16166,  18541
Give (context switch)                   :   9041,   9041,  10583
** Semaphore stats [avg, min, max] in nanoseconds **
Give (no context switch)                :   3208,   3208,   4750
Take (no context switch)                :   2458,   2458,   4083
** Yield stats [avg, min, max] in nanoseconds **
Yield (no context switch)               :   2833,   2833,   4375
Yield (context switch)                  :   2791,   2791,   4291
** Allocation stats [avg, min, max] in nanoseconds **
Malloc                                  :    591,    591,   2250
Free                                    :    558,    558,   2241
** Message queue stats [avg, min, max] in nanoseconds **
Create                                  :    n/a,    n/a,    n/a
Send (no context switch)                :    n/a,    n/a,    n/a
Receive (no context switch)             :    n/a,    n/a,    n/a
Send (context switch)                   :    n/a,    n/a,    n/a
Receive (context switch)                :    n/a,    n/a,    n/a
** Interrupt Stats [avg, min, max] in nanoseconds **

Latency                                 :    458,    458,    458

*** Done! ***


Outliers Detected:

  • Spawn (context switch) (max): 22666 (Ideal: 21125)
  • Resume (context switch) (max): 8291 (Ideal: 6875)
  • Terminate (context switch) (max): 18583 (Ideal: 17791)
  • Lock (no owner) (avg): 3750 (Ideal: 3875)
  • Lock (no owner) (min): 3750 (Ideal: 3875)
  • Unlock with unpend (no context switch) (max): 6500 (Ideal: 4875)
  • Give (no context switch) (avg): 3208 (Ideal: 3083)
  • Give (no context switch) (min): 3208 (Ideal: 3083)
  • Take (no context switch) (avg): 2458 (Ideal: 2583)
  • Take (no context switch) (min): 2458 (Ideal: 2583)
  • Malloc (avg): 591 (Ideal: 633)
  • Malloc (min): 591 (Ideal: 633)
  • Malloc (max): 2250 (Ideal: 2416)
  • Free (avg): 558 (Ideal: 525)
  • Free (min): 558 (Ideal: 525)
  • Free (max): 2241 (Ideal: 2075)
  • Latency (avg): 458 (Ideal: 391)
  • Latency (min): 458 (Ideal: 391)
  • Latency (max): 458 (Ideal: 391)

Please improve your code. Upto 3% performance change is tolerated.

@bhoomrs bhoomrs closed this Feb 5, 2025
@bhoomrs
Copy link
Owner Author

bhoomrs commented Feb 5, 2025

This PR is benchmarked on the NXP FRDM-K64F microcontroller board. Here are the results:

** Thread stats [avg, min, max] in nanoseconds **
Spawn (no context switch)               :  19708,  19708,  21375
Create (no context switch)              :    n/a,    n/a,    n/a
Start (no context switch)               :    n/a,    n/a,    n/a
Suspend (no context switch)             :   5541,   5541,   7125
Resume (no context switch)              :   4875,   4875,   6458
Spawn (context switch)                  :  20958,  20958,  22666
Start  (context switch)                 :    n/a,    n/a,    n/a
Suspend (context switch)                :   8250,   8250,   9833
Resume (context switch)                 :   6791,   6791,   8291
Terminate (context switch)              :  16166,  16166,  18583
** Mutex Stats [avg, min, max] in nanoseconds **
Lock (no owner)                         :   3750,   3750,   5333
Unlock (no waiters)                     :   4958,   4958,   6500
Recursive lock                          :   1625,   1583,   3291
Recursive unlock                        :   1750,   1750,   3375
Unlock with unpend (no context switch)  :   5000,   5000,   6500
Unlock with unpend (context switch)     :  13416,  13416,  15000
Pend (no priority inheritance)          :  17625,  17625,  19916
Pend (priority inheritance)             :  20291,  20250,  22708
** Semaphore stats [avg, min, max] in nanoseconds **
Take (context switch)                   :  16166,  16166,  18541
Give (context switch)                   :   9041,   9041,  10583
** Semaphore stats [avg, min, max] in nanoseconds **
Give (no context switch)                :   3208,   3208,   4750
Take (no context switch)                :   2458,   2458,   4083
** Yield stats [avg, min, max] in nanoseconds **
Yield (no context switch)               :   2833,   2833,   4375
Yield (context switch)                  :   2791,   2791,   4291
** Allocation stats [avg, min, max] in nanoseconds **
Malloc                                  :    591,    591,   2250
Free                                    :    558,    558,   2241
** Message queue stats [avg, min, max] in nanoseconds **
Create                                  :    n/a,    n/a,    n/a
Send (no context switch)                :    n/a,    n/a,    n/a
Receive (no context switch)             :    n/a,    n/a,    n/a
Send (context switch)                   :    n/a,    n/a,    n/a
Receive (context switch)                :    n/a,    n/a,    n/a
** Interrupt Stats [avg, min, max] in nanoseconds **

Latency                                 :    458,    458,    458

*** Done! ***


Outliers Detected:

  • Spawn (context switch) (max): 22666 (Ideal: 21125)
  • Resume (context switch) (max): 8291 (Ideal: 6875)
  • Terminate (context switch) (max): 18583 (Ideal: 17791)
  • Lock (no owner) (avg): 3750 (Ideal: 3875)
  • Lock (no owner) (min): 3750 (Ideal: 3875)
  • Unlock with unpend (no context switch) (max): 6500 (Ideal: 4875)
  • Give (no context switch) (avg): 3208 (Ideal: 3083)
  • Give (no context switch) (min): 3208 (Ideal: 3083)
  • Take (no context switch) (avg): 2458 (Ideal: 2583)
  • Take (no context switch) (min): 2458 (Ideal: 2583)
  • Malloc (avg): 591 (Ideal: 633)
  • Malloc (min): 591 (Ideal: 633)
  • Malloc (max): 2250 (Ideal: 2416)
  • Free (avg): 558 (Ideal: 525)
  • Free (min): 558 (Ideal: 525)
  • Free (max): 2241 (Ideal: 2075)
  • Latency (avg): 458 (Ideal: 391)
  • Latency (min): 458 (Ideal: 391)
  • Latency (max): 458 (Ideal: 391)

Please improve your code. Upto 3% performance change is tolerated.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant