using System; using System.Threading.Tasks; namespace ConsoleApp2189 { public static class Program { public static void Main(string[] args) { while (true) { Task.Run(() => TopLevel()); } } public static async Task TopLevel() { try { return await A(); } catch (Exception e) { var s = e.ToString(); // Do nothing - we're just interested in allocations return s; } } public static async Task A() => await B(); public static async Task B() => await C(); public static async Task C() => await D(); public static async Task D() => await E(); public static async Task E() => await F(); public static async Task F() => await G(); public static async Task G() => await H(); public static async Task H() => await I(); public static async Task I() => await J(); public static async Task J() => await K(); public static async Task K() => await L(); public static async Task L() => await M(); public static async Task M() => await N(); public static async Task N() => await O(); public static async Task O() => await P(); public static async Task P() => await Q(); public static async Task Q() => await R(); public static async Task R() => await S(); public static async Task S() => await T(); public static async Task T() => await U(); public static async Task U() => await V(); public static async Task V() => await W(); public static async Task W() => await X(); public static async Task X() => await Y(); public static async Task Y() => await Z(); public static async Task Z() => throw new Exception("Well this is isn't very efficient."); } }