Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support .net 9 for lambda #1918

Closed
2 tasks
nrglv opened this issue Dec 26, 2024 · 5 comments
Closed
2 tasks

Support .net 9 for lambda #1918

nrglv opened this issue Dec 26, 2024 · 5 comments
Labels
closed-for-staleness feature-request A feature should be added or improved. module/custom-runtime p2 This is a standard priority issue response-requested Waiting on additional info and feedback. Will move to close soon in 7 days.

Comments

@nrglv
Copy link

nrglv commented Dec 26, 2024

Describe the feature

  • Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request
  • Please do not leave "+1" or "me too" comments, they generate extra noise for issue followers and do not help prioritize the request

Use Case

1. Performance Optimizations
Over 1,000 changes aimed at improving performance and code generation quality.
Modernized garbage collector with a new dynamic adaptation mechanism, adjusting to application memory needs instead of available system resources. This improves efficiency on multi-core systems, especially for memory-constrained or dynamically changing workloads.
2.JIT Compiler Improvements
Profile-guided optimizations (PGO) for better loop handling, inline expansion, and bounds checking.
Enhanced vector instruction support, including Arm64 SVE and Intel AVX10.
Exception handling is 50% faster, while type casting operations (e.g., (IFoo)myFoo and myFoo is IFoo) are up to 70% faster.
LINQ and JSON Performance
LINQ methods like Take and DefaultIfEmpty are up to 10x faster with empty arrays or collections.
3. Significant improvements in System.Text.Json:
UTF-8 string writing eliminates unnecessary memory allocation.
Optimized resizing operations for JsonObject.
TechEmpower benchmarks show 15% better JSON processing performance and 93% memory usage reduction compared to .NET 8.
4. Runtime Enhancements
New attribute model introduced for feature activation and trimming in libraries.
These advancements make .NET 9 faster, more memory-efficient, and well-suited for modern high-performance applications.

https://github.com/dotnet/runtime/releases
https://devblogs.microsoft.com/dotnet/performance-improvements-in-net-9/

Proposed Solution

No response

Other Information

No response

Acknowledgements

  • I may be able to implement this feature request
  • This feature might incur a breaking change

AWS .NET SDK and/or Package version used

AWSSDK.Lambda 3.7.400.2

Targeted .NET Platform

.NET 9

Operating System and version

Mac, Linux

@nrglv nrglv added feature-request A feature should be added or improved. needs-triage This issue or PR still needs to be triaged. labels Dec 26, 2024
@slang25
Copy link
Contributor

slang25 commented Dec 26, 2024

What is it you are asking for here? You can already run a .NET 9 Lambda using a provided runtime, the dotnet Lambda runtime will only support LTS releases.

The lambda core library doesn't need retargeting to support .NET 9 and get all the benefits you lost.

@ashishdhingra ashishdhingra self-assigned this Dec 26, 2024
@ashishdhingra ashishdhingra added investigating This issue is being investigated and/or work is in progress to resolve the issue. module/custom-runtime p2 This is a standard priority issue and removed needs-triage This issue or PR still needs to be triaged. labels Dec 26, 2024
@ashishdhingra
Copy link
Contributor

@nrglv Good morning. AWS provided Lambda runtimes support .NET LTS releases only. Lambda .NET 9 container images might take a while to be available in ECR repo. CC @normj @philasmar for any inputs.

@ashishdhingra ashishdhingra added needs-review and removed investigating This issue is being investigated and/or work is in progress to resolve the issue. labels Dec 26, 2024
@ashishdhingra ashishdhingra removed their assignment Dec 26, 2024
@petro2050
Copy link

What is it you are asking for here? You can already run a .NET 9 Lambda using a provided runtime, the dotnet Lambda runtime will only support LTS releases.

The lambda core library doesn't need retargeting to support .NET 9 and get all the benefits you lost.

I think we need instructions here if it's possible to do this.

  • provided.al2023
  • .NET 9
  • zip deployment

Do we need to publish the app as self-contained? If so, what does this mean for cold-start times due to a bigger binary size?

@ashishdhingra
Copy link
Contributor

@nrglv Good morning. AWS provided Lambda runtimes support .NET LTS releases only. Lambda .NET 9 container images might take a while to be available in ECR repo. CC @normj @philasmar for any inputs.

@nrglv In the meanwhile, you could go with self-contained deployments until container images are available in ECR repo.

@ashishdhingra ashishdhingra added response-requested Waiting on additional info and feedback. Will move to close soon in 7 days. and removed needs-review labels Jan 2, 2025
Copy link
Contributor

This issue has not received a response in 5 days. If you want to keep this issue open, please just leave a comment below and auto-close will be canceled.

@github-actions github-actions bot added the closing-soon This issue will automatically close in 4 days unless further comments are made. label Jan 13, 2025
@github-actions github-actions bot added closed-for-staleness and removed closing-soon This issue will automatically close in 4 days unless further comments are made. labels Jan 18, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
closed-for-staleness feature-request A feature should be added or improved. module/custom-runtime p2 This is a standard priority issue response-requested Waiting on additional info and feedback. Will move to close soon in 7 days.
Projects
None yet
Development

No branches or pull requests

4 participants