1. A computer implemented method for optimizing the performance of one or more software components, the method comprising: identifying, by a component optimization computing device, a plurality of software components for parallel execution, wherein the plurality of software components comprise a software application, workflow, process, or a software component implementing at least one discrete functionality; executing, by the component optimization computing device, the identified plurality of software components; profiling, by the component optimization computing device, performance of the executed plurality of software components at runtime, wherein the profiling comprises gathering performance data related to one or more performance characteristics of the executed plurality of software components at runtime; creating, by the component optimization computing device, an optimization model based on the performance data, wherein the optimization model comprises a cost-benefit evaluation of parallelization of the executed plurality of software components based on comparing resource overhead associated with parallel execution of each one of the executed plurality of software components to the resource overhead associated with serial execution of each one of the executed plurality of software components; and marking, by the component optimization computing device, at least two of the plurality of software components for parallel execution in a subsequent execution of the plurality of software components based on the optimization model.