1. A method executed by a processor for optimizing execution of dynamic language code, the method comprising: identifying a first dynamic language function call during runtime, the function call including argument values for one or more arguments of the function; calculating a type signature for the one or more argument values of the function; determining if a function associated with the type signature is stored in a cache; looking up the function in the cache when the function associated with the type signature is stored in the cache; and dynamically calling the function associated with the type signature when the function for the type signature is not stored in the cache.