1. A method comprising: executing, on one or more computing devices, a program execution engine; wherein the program execution engine is designed to execute user-provided programs; and wherein the program execution engine includes functions exposed via an application programming interface (API) to user-provided programs that allows user-provided programs to allocate, access, and deallocate in-memory objects; while the program execution engine is executing a particular user-provided program, the program execution engine receiving a first call from the particular user-provided program, through the API, to allocate a particular in-memory object; in response to the first call, the program execution engine performing the steps of: allocating a particular region of volatile memory for the particular in-memory object; generating a first memory-usage record for the particular in-memory object; wherein the first memory-usage record includes a set of metadata about the particular in-memory object; and adding the first memory-usage record to a set of memory-usage records; wherein each memory-usage record in the set of memory-usage records: corresponds to a respective in-memory object, allocated by the program execution engine in response to a respective allocation call from the particular user-provided program, that has not yet been deallocated; and includes metadata about the respective in-memory object; at a particular point in time, receiving a request for information about currently allocated in-memory objects associated with the particular user-provided program; in response to the request, performing the steps of: using the set of memory-usage records to determine a set of currently-allocated in-memory objects that have been allocated by the particular user-provided program and not yet deallocated by the particular user-provided program; and generating a response to the request that: identifies the set of currently-allocated in-memory objects, and includes, for each currently-allocated in-memory object in the set of currently-allocated in-memory objects, metadata extracted from the memory-usage record, within the set of memory-usage records, that corresponds to the currently-allocated in-memory object.