Select an algorithm you have already coded that is moderately complex. Pick code that has several lines and uses more than one computations resource (RAM, IO devices, Networks, Processor, GPU, etc...), but don't pick code so large or complex that it will take you a week to analyze it (Hello World does not qualify as moderately complex, but anything over a couple pages of code is probably too much). Analyze the resources used and the performance of this algorithm / code and report the results.
Respond to the following:
What computational resources does your algorithm/code use?
What computational resources impact the performance of your algorithm?
In what cases, situations, or scenarios would your algorithms performance be enhanced or diminished?
Show the lines or sections of code that would be affected and explain why.
Determine and report the Big O of your algorithm. You may want to report the Big O for the best case, worst case, and average case.
Profiler - Use a profiler to analyze your code. Describe what you learned about the execution, resources, and efficiency of your code.
Runtime analysis (adding timers around sections of your code) - Conduct a runtime analysis of your code and report the results.