Azure / Azure/azure-functions-host
Investigate AOT as alternative for .NET Isolated placeholders
- Dominant language
- C#
- Stars
- 2k
- Forks
- 482
- Avg merge
- 2d 12h
- Merged PRs (30d)
- 38
Description
Investigate whether AOT improves cold start enough that we can use it instead of placeholders. Investigation with results should be complete by Sept 11th.
[Related item](https://github.com/Azure/azure-functions-dotnet-worker/issues/963)
Pragna, Hamid, Fabio, Cary notes:
- Brett, Shyju, and Fabio collaborate. Putting together doc of options and trying to keep with how rest of .NET works. If AOT with training gets close to parity with in-proc, that's most likely path forward for placeholders. Should see substantial improvements for .NET 8. Otherwise, do placeholder process like discussed before and have context to load CLR's and jit code paths to load customer code dynamically. Bit more fragile potentially as different from other contexts for CLR.
- [Hamid] Very hesitant AOT will help bring 1.4s to <600ms since we know not all of it is coming from jitting. >55% is from assembly node disk.
- Optimizing worker as much as possible by making everything as static as possible by code generated at compile time
- AOT about measuring process. Shouldn't take long. Can we timebox AOT to few days before Cold Start sync with Bilal, so we can communicate out plans? Time box to Sept 11.
Contributor guide
Research direction
Review related issue #963 and the notes on AOT, placeholders, and .NET isolated cold start. Time-box an AOT measurement, comparing the reported 1.4-second startup with the under-600ms target and considering that more than 55% may come from assembly-node disk access. Done means documented results and a communicated direction by September 11.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- backend, cloud
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100