A system, comprising: one or more general purpose central processing unit cores; a co-processor having a set of functions corresponding to data operations which can be offloaded from the general purpose central processing unit cores; and a memory comprising program instructions that, when executed by the one or more general purpose CPU cores cause the one or more general purpose CPU cores to implement a platform-independent, object-oriented, runtime environment; wherein the runtime environment comprises an offload engine configured to: execute one or more data operations on a stream of data in response to an application, executing within the runtime environment, invoking one or more methods of the offload engine, wherein the data operations are indicated by the application and wherein the stream of data is provided by the application, wherein to execute the one or more data operations on the stream of data, the offload engine is configured to attempt to perform the one or more data operations on the stream of data using the co-processor, wherein the attempt to perform the one or more data operations on the stream of data using the co-processor is based, at least in part on a size of data in the stream of data to which the one or more data operations are to be applied; determine that the attempt to perform the one or more data operations on the stream of data using the co-processor was unsuccessful based, at least in part, on a determination that a garbage collection operation comprising generation of a safepoint is required; and in response to determining that the attempt to perform the one or more data operations on the stream of data using the co-processor was unsuccessful, perform the one or more data operations on the stream of data using the one or more general purpose CPU cores. one or more general purpose central processing unit cores; a co-processor having a set of functions corresponding to data operations which can be offloaded from the general purpose central processing unit cores; and a memory comprising program instructions that, when executed by the one or more general purpose CPU cores cause the one or more general purpose CPU cores to implement a platform-independent, object-oriented, runtime environment; wherein the runtime environment comprises an offload engine configured to: execute one or more data operations on a stream of data in response to an application, executing within the runtime environment, invoking one or more methods of the offload engine, wherein the data operations are indicated by the application and wherein the stream of data is provided by the application, wherein to execute the one or more data operations on the stream of data, the offload engine is configured to attempt to perform the one or more data operations on the stream of data using the co-processor, wherein the attempt to perform the one or more data operations on the stream of data using the co-processor is based, at least in part on a size of data in the stream of data to which the one or more data operations are to be applied; determine that the attempt to perform the one or more data operations on the stream of data using the co-processor was unsuccessful based, at least in part, on a determination that a garbage collection operation comprising generation of a safepoint is required; and in response to determining that the attempt to perform the one or more data operations on the stream of data using the co-processor was unsuccessful, perform the one or more data operations on the stream of data using the one or more general purpose CPU cores. execute one or more data operations on a stream of data in response to an application, executing within the runtime environment, invoking one or more methods of the offload engine, wherein the data operations are indicated by the application and wherein the stream of data is provided by the application, wherein to execute the one or more data operations on the stream of data, the offload engine is configured to attempt to perform the one or more data operations on the stream of data using the co-processor, wherein the attempt to perform the one or more data operations on the stream of data using the co-processor is based, at least in part on a size of data in the stream of data to which the one or more data operations are to be applied; determine that the attempt to perform the one or more data operations on the stream of data using the co-processor was unsuccessful based, at least in part, on a determination that a garbage collection operation comprising generation of a safepoint is required; and in response to determining that the attempt to perform the one or more data operations on the stream of data using the co-processor was unsuccessful, perform the one or more data operations on the stream of data using the one or more general purpose CPU cores.