1. A computer-implemented method executed by at least one processor for improving performance of an application at runtime, the method comprising the steps of: (A) displaying an operator graph that represents the application using a plurality of operators and a plurality of data flows between the plurality of operators; (B) analyzing the operator graph at runtime when the application runs; (C) detecting at least one problem in the operator graph based on at least one data bottleneck in the operator graph; (D) performing at least one resource reallocation to improve performance of the application represented in the operator graph; and (E) specifying by a user a reallocation policy that specifies a plurality of problems and corresponding potential reallocations to perform to address the plurality of problems, wherein the plurality of problems comprise compute bound and memory bound, wherein step (D) selects the at least one resource reallocation from the potential reallocations in the reallocation policy.