1. A computer-implemented method comprising: allocating, from a device memory, one or more variable-sized chunks of memory for a memory pool, wherein an application allocates at least one of the chunks of memory from the memory pool for processing a plurality of input data streams in real-time; receiving a request to allocate memory from the memory pool for input data; and upon determining that one of the chunks is available in the memory pool to store the input data, allocating the chunk from the memory pool in response to the request .