SimpleSpeedTester

Yan Cui

I help clients go faster for less using serverless technologies.

Since I do a fair bit of performance tests on random things that pique my interest, it’s only natural that I should make the task of carrying out these tests easier for myself, so over the weekend I put together a simple, no frills framework to do just that!

The SimpleSpeedTester project is intended to make it easier to:

  • time the execution of some code
  • orchestrate multiple runs of the same test
  • collate the execution time of the test runs
  • provide an easy way to obtain summary for the tests

What it’s not

It’s not a profiler! It doesn’t tell you which line of your code is taking what percentage of your CPU time or how much memory is used where. It’s intended for one thing and one thing only – help you speed test a specific piece of code/method over multiple runs, collate the results and work out the average for you so you don’t have to.

Getting Started

To get started, download the binaries here, reference the SimpleSpeedTester.dll in your project, and all you need is one line of code to schedule a test to be run multiple times and get a summary of the test runs:

   1: // initialize a new test group

   2: var testGroup = new TestGroup("Example2");

   3:  

   4: // PlanAndExecute executes the Action delegate 5 times and returns the result summary

   5: var testResultSummary = testGroup.PlanAndExecute("Test1", () => { }, 5);

   6:  

   7: Console.WriteLine(testResultSummary);

   8: /* prints out something along the line of

   9:  *

  10:  * Test Group [Example2], Test [Test1] results summary:

  11:  * Successes   [5]

  12:  * Failures    [0] 

  13:  * Average Exec Time [...] milliseconds

  14:  *

  15:  */

And you’re done! Easy, right? ;-)

I’ve included a couple more examples here covering the most common use cases, more will be added as I add more functionalities.

So what are you waiting for? Go on, download it and play around with it, let me know what you think, any constructive suggestions are very welcomed!


 

Whenever you’re ready, here are 4 ways I can help you:

  1. If you want a one-stop shop to help you quickly level up your serverless skills, you should check out my Production-Ready Serverless workshop. Over 20 AWS Heroes & Community Builders have passed through this workshop, plus 1000+ students from the likes of AWS, LEGO, Booking, HBO and Siemens.
  2. If you want to learn how to test serverless applications without all the pain and hassle, you should check out my latest course, Testing Serverless Architectures.
  3. If you’re a manager or founder and want to help your team move faster and build better software, then check out my consulting services.
  4. If you just want to hang out, talk serverless, or ask for help, then you should join my FREE Community.

 


Leave a Comment

Your email address will not be published. Required fields are marked *