Unrolling aggregation operations in asynchronous programming code having multiple levels in hierarchy
One or more techniques and/or systems are disclosed for improving asynchronous programming execution at runtime. Asynchronous programming code can comprise more than one level of hierarchy, such as in an execution plan. Respective aggregation operations in a portion of the asynchronous programming code are unrolled, to create a single level iterative execution, by combining elements of the multi-level iterative execution of the asynchronous programming code. In this way, the aggregation operations are concatenated to local logic code for the aggregation operations. Thread context switching in the unrolled portion of asynchronous programming code is performed merely at an asynchronous operation, thereby mitigating unnecessary switches. Exceptions thrown during programming code can be propagated up to a top of a virtual callstack for the execution.
Microsoft Technology Licensing LLC
G G G G
G06F G06F G06F G06F
inventional inventional inventional inventional
Xiaoxuan Fengbin Xiang Sridhar
Zhao Jiang Zhou Srinivasan