( if you use recursion for algorithms with any of the above run time efficiency' you are inviting trouble the growth rate of these algorithms is high and in most cases such algorithms will lean very heavily on techniques like divide and conquer while constantly splitting problems into smaller problems is good practicein these cases you are going to be spawning lot of method calls all this overhead (method calls don' come that cheapwill soon pile up and either cause your algorithm to run lot slower than expectedor worseyou will run out of stack space when you exceed the allotted stack space for thread the process will be shutdown by the operating system this is the case irrespective of the platform you usee netor native +etc you can ask for bigger stack sizebut you typically only want to do this if you have very good reason to do so activation records an activation record is created every time you invoke method put simply an activation record is something that is put on the stack to support method invocation activation records take small amount of time to createand are pretty lightweight normally an activation record for method call is as follows (this is very general)the actual parameters of the method are pushed onto the stack the return address is pushed onto the stack the top-of-stack index is incremented by the total amount of memory required by the local variables within the method jump is made to the method in many recursive algorithms operating on large data structuresor algorithms that are inefficient you will run out of stack space quickly consider an algorithm that when invoked given specific value it creates many recursive calls in such case big chunk of the stack will be consumed we will have to wait until the activation records start to be unwound after the nested methods in the call chain exit and return to their respective caller when method exits it' activation record is unwound unwinding an activation record results in several steps the top-of-stack index is decremented by the total amount of memory consumed by the method the return address is popped off the stack the top-of-stack index is decremented by the total amount of memory consumed by the actual parameters