Discuz! Board

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 90|回复: 0

The handler function above calculates

[复制链接]

1

主题

1

帖子

5

积分

新手上路

Rank: 1

积分
5
发表于 2023-12-25 15:10:56 | 显示全部楼层 |阅读模式
Dependency chain. If one of the functions is very slow it will affect the rest of the chain. So handler performance is the issue. Best practices for performance optimization come after we spent several months digging into serverless environments and optimizing how we behave in them. Along the way we've discovered a number of best practices that you can adopt in your own applications to maintain the highest possible performance. For example you might do something like this in a serverless function.  the th number in the Fibonacci sequence. After the calculation is complete your function will continue processing the request and eventually return a response. Moving it outside of the handler allows the calculation to be done when the environment has more resources available and makes it only run once instead of on every call. The updated code looks like below. Another thing to keep in mind is the support for top level await which allows you to run async code outside of handlers. We've found that running a function explicitly outside of a handler can have a positive impact on the function's performance. Keep your functions as simple as possible. Serverless functions are very small, isolated pieces of code.

If your function and dependency tree are large and complex or spread across many files you may find that the runtime takes longer to read and interpret it. Here are some things you can do to imp photo editing servies rove startup performance: Include only the code your function actually needs to do its job Don't use libraries and frameworks that load a lot of stuff you don't need The general point here is that the less code you need to explain the simpler your dependency tree will be The processing speed is faster. Don't do more work than needed. Any value calculations or expensive operations that may be reused each time the function is called should be cached as variables outside the handler scope. Doing this avoids performing these expensive operations every time the function is called. Consider a situation where the values stored in the database do not change frequently such as configurable redirects. Although this code works but the query to find the redirects is run every time the function is called.



This is not ideal as it requires accessing the database to find the value you already found during the last call. A better way to write it is to first check the cached value outside the handler. If not found then run the query and store the results for next time The query will now only run the first time the function is called. Any subsequent calls will use the cached value. One final thing to consider is using provisioned concurrency to keep things warm if you use them. According to the documentation note that provisioning concurrency initializes the requested number of execution environments so that they are ready to respond immediately to function calls. Please note that configuring provisioned concurrency will incur charges to your account. This allows you to maintain a specified number of available execution environments that can respond to requests without cold-starting. While this sounds great, there are some important things to remember that using provisioned concurrency will incur additional costs. Your application will never scale down. These are important considerations as the added cost may be for your specific scenario. not worth it. Before taking this step we recommend that you look at the value it brings to your application and consider .


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|DiscuzX

GMT+8, 2025-9-14 16:27 , Processed in 0.068874 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表