问题标签 [cold-start]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - Android 缓慢的冷启动时间
我有一个非常奇怪的问题,需要帮助解决。它与较长的应用程序冷启动时间有关。这意味着,我的应用程序需要很长时间才能启动并首次显示。鉴于此处给出的材料,我已经研究了故障排除:
https://developer.android.com/topic/performance/vitals/launch-time
都非常有帮助,但我尝试了一些不同的东西。当我们的系统处于重负载状态时,就是我看到启动时间问题的时候。我尝试将整个活动剥离为仅启动,而不是像以往那样绘制/夸大视图。从字面上看,只是启动基本活动。我看到平均冷启动时间为 1.45 秒。您可能认为这没问题,但我们还有其他应用程序具有完整的实现和视图/小部件、数据等的实际膨胀。启动只需要大约 1.17 秒。这让我很困惑,因为我实际上只有一个活动(相同的 android 主题)。我还应该寻找哪些其他东西?为什么启动需要这么长时间?
请注意,我与之比较的活动是在我使用 Maven 时使用 Gradle 构建的。我们的 Android 清单在属性使用方面是相同的。
我还尝试在启动活动之前已经启动该过程(在启动时创建了一个虚拟服务),但启动时间并没有真正的改善。我在 Android 4.3.1 上,通过查看 logcat 中的 ActivityManager 条目来确认启动时间。也许是资源加载问题?它必须与构建有关,因为没有理由说明为什么一个简单的活动需要更长的时间才能启动,而不是一个更复杂的活动。
编辑:添加代码
这是清单:
申请代码:
活动代码:
就像我说的,超级基本/骨架。
javascript - 谷歌云功能冷启动与 UI 元素
我目前正在为 web 和 iOS 制作一个应用程序,在 web 端我有一堆 Javascript 逻辑可以改变我拥有的 Firestore 数据库。我想我会将这个逻辑移动到多个云函数中,这样我就可以从我的 web 和 iOS 客户端调用它们,并且只需要在 nodeJS 中编写一次逻辑,而不是在 Javascript 中为 web 应用程序编写相同的逻辑一次用于 Swift 中的 iOS 应用程序。我已经让云功能工作并更新数据库,但问题是冷启动时间。我的网页上有 UI 元素,用于监视 Firestore 数据库中的更新,并在发生更改时进行更改。在这些更改是即时的之前,但现在使用 Cloud Functions,我必须等待冷启动完成,然后才能更新数据库和 UI。
我想迁移到云功能,所以我只需要编写一次逻辑,但这是一个不起作用的用例吗?(实时更新 UI 元素)。是否值得尝试设置一个 cron 作业以不断 ping 我的功能以使它们始终“活着”?由于我的似乎很快就死了,如何在冷启动后增加“活动时间”的功能?解决此问题的任何一般提示或技巧?
多谢你们。
amazon-web-services - 如何强制重新加载 lambda 函数的全局变量?
我计划将我的 lambda 函数配置从环境变量移动到 DynamoDb,因为我的 lambda 函数共享配置,而且我不想在每次配置更改时重新部署我的 lambda 函数(我的配置经常更改,一旦他们这样做我必须重新部署这么多 lambda 函数)。
但是为了提高我的 lambda 函数的性能并降低成本,我不会在每次执行时加载配置。相反,我会将配置加载到全局变量中,并且由于全局变量在执行过程中持续存在(只要 lambda 函数已预热),我可以在不访问 DynamoDb 的情况下重用相同的配置。这是一个示例代码:
到目前为止一切都很好。现在,考虑使用新配置更新 DynamoDb 的时间。在被 AWS 关闭并面临冷启动之前,预热的 lambda 函数将继续使用旧配置。
我想要做的是向 lambda 函数发出信号并强制它们刷新其预热的 lambda 函数并在每次配置更改时重新开始。我知道我可以重新部署它们,这正是我想要的。但这正是我一开始要逃避的地方。那么,我有哪些选择?
serverless - 如何使用 zappa python 保持 lambda 温暖
我在 python 中有一个 API 函数,并使用 zappa 将它部署在 aws lambda 上。当我在 15 分钟后点击我的 API 时,它至少需要 5 到 10 秒来响应第一个请求(这对我的 API 来说太长了)。我开始了解 aws lambda 中的冷启动问题。如何使用 zappa python 保持 lambda 温暖?
python - 如何使用 Zappa 克服 AWS Lambda 中的冷启动问题?
我已经使用 zappa 在 AWS 中部署了 api(Django 应用程序)。我正面临冷启动问题。启动应用程序需要将近 7-8 秒(代码将近 25 MB)。如何克服这个问题?
在 zappa settings.json 中,我保留了 keep_warm=true但没有用。我已经编写了 lambda 函数来使用调度 cloudwatch 事件触发 api,它正在触发(我可以在 zappa 日志中看到)但问题没有解决。
我的处理程序的示例代码是:
我的 zappa 配置是:
aws-lambda - 为什么 ALB 健康检查不处理 Lambdas 上的冷启动?
我有一个 ALB,它每 30 秒对目标组(在本例中为 Lambda 端点)执行一次运行状况检查。尽管如此,每当我在几分钟或更长时间内第一次查询我的 API 时,它都会经历冷启动。可能是什么原因?Lambda 函数的 ALB 健康检查启动是否故意启动一个单独的隔离实例,纯粹用于健康检查,而不是对 URL 的一般查询使用的相同实例?CloudWatch 似乎证实了我的怀疑,因为 ALB 检查都记录到 lambda 日志组中的单独日志流中。在此先感谢您的帮助。
amazon-web-services - 有没有办法在没有 VPC 的情况下将静态 IP 分配给 AWS Lambda?
我希望为通过 API 网关调用的 Lambda 分配一个静态 IP。这是必需的,因为我从此 lambda 调用的下游系统仅接受来自白名单 IP 的 Web 请求。
我通过与我的 lambda 关联的 VPC 成功地实现了这一点。但是 VPC 引入了一个糟糕的冷启动时间,有时范围为 12-16 秒。所以我正在寻找一种方法来防止从 VPC 冷启动,但同时为 lambda 分配一个静态 IP。
amazon-web-services - 了解 AWS Lambda 中的冷启动
是否有可能获得 AWS Lambda 冷启动的概述,即有多少冷启动以及它们花了多长时间?
我知道有冷启动的解决方案,我知道我可以在冷启动时记录一些东西,但这不是我需要的。我想了解过去冷启动的概况。
我知道发生冷启动时会创建一个新的日志流,因此我会使用 CloudWatch Insights 来获取REPORT
每个日志流的第一个类型记录。但是我无法编写一个查询来按日志流对报告进行分组,然后为每个组获取第一个。
这会给我一个概览,我可以在 Excel 中进行分析,但数据对于 Excel 来说太大了:
我可以得到,stats max(@duration) by @logStream
但这不是我想要的。我想要第一张唱片,然后@duration
从那里拿走。这是可能吗?还是我应该去别处寻找?
amazon-web-services - 基于当前使用情况的 EC2 到 Lambda 转发
我的 Lambda 函数的冷启动时间很长。我们已经尝试“ping” Lambda 以使其保持温暖,但这可能会变得昂贵并且似乎是保持性能的糟糕方法。我们还有一个 24/7 运行的 EC2 实例。理论上,我可以将我们所有的 Lambda 函数“镜像”到我们的 EC2 实例,以对我们的 API 调用使用相同的数据进行响应。我们的 Lambda 位于https://api.mysite.com,我们的 EC2 位于https://dev.mysite.com。
我的问题是我们可以“负载平衡”吗?两者之间的交通。(创建一个新的子域来执行以下操作)让我们的开发子域 (EC2) 响应所有请求,直到达到某个“每分钟请求数”。然后开始将流量路由到我们的开发子域 (Lambda),因为我们有足够的流量进入以保持 Lambda 的热度。一旦流量变慢,我们将流量移回我们的 EC2 .. 这可能吗?
java - AWS Lambdas 中对 JDK 11 的支持是否会带来任何性能改进?特别是关于冷启动?
对于 AWS Lambdas,在冷启动方面,Java 似乎明显比其他支持的语言慢。与 JDK 8 相比,JDK 11 是否有任何性能增强,可以改善冷启动时间?