问题标签 [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.

0 投票
1 回答
433 浏览

firebase - 使用 expressjs 优化 firebase 功能冷启动

我试图弄清楚如何优化我的 firebase 功能的冷启动时间。看完这篇文章,我想尝试一下,但发现这篇文章专门针对 http onRequest 函数的基本用法,并没有给出使用 express 的示例。

这里出现了一个类似的问题,但似乎没有明确的答案。我看到文章的作者 Doug 实际上对这个问题发表了评论,他提到为应用程序中的每个路由创建一个动态导入,因为 onRequest() 只允许将应用程序作为其唯一参数传递,但我不明白究竟是什么他的意思是在没有 express 应用的情况下使用基本 API。理想情况下,我可以使用 express,以便更好地控制 api url 路径并使用 express 提供的一些实用程序。

谁能给我一个如何在 Doug 的例子中使用 express 的例子?即使我必须为每条路线定义一个新的快递应用程序,我也可以接受。只是看不到如何以这种方式配置它。

编辑:明确地说,目标是优化所有函数调用的冷启动而不仅仅是 http 路由调用。据我了解,Doug 的示例消除了使用 onRequest 声明的单个路由预加载的导入,但它没有显示在通过 express 定义路由时这是如何实现的。

0 投票
1 回答
25 浏览

android - Android 应用程序在获取数据时表现异常

在我的android应用程序中,我看到每当我第一次打开它时,它就会Firebase从检索卡住了一小会儿,就像 2G 互联网连接中的电影一样。我真的不喜欢这种行为而且我认为它会减少我的应用程序的用户数量。我不知道这个场景背后的确切原因但也许logcat 中的这一行喊出了那个原因BottomNavigationBarprogressBar

应用程序可能在其主线程上做了太多工作。

我想知道摆脱它的原因和解决方案。我听说过,AsyncTask但我不知道是不是这样。

0 投票
2 回答
82 浏览

firebase - 每个 Firebase 云函数都需要自己的时间来开始处理

我总共部署了 7 个 Firebase 云功能,我知道 Firebase 在开始处理任何请求之前需要的冷启动时间。它可以通过减少依赖和延迟初始化等来最小化。我正在尽一切可能减少冷启动时间。

但现在我面临的问题是,每个云函数在第一次调用时都有自己的冷启动时间。以前我认为只有第一次调用第一个 firebase 函数需要时间来处理,但看起来事实并非如此。每个功能都需要自己的时间。

关于如何避免其他函数的冷启动(第一次调用除外)的任何想法?就像在部署等期间可以做的事情一样。

提前致谢。

0 投票
1 回答
169 浏览

react-native - React Native UI Kitten 导致启动缓慢

我注意到当 ApplicationProvider 标签存在时,我的反应原生应用程序启动时间增加到 5 秒以上。我已经按照 UI-Kitten 团队的指南通过配置 metro.config.js 文件来提高性能,但似乎没有帮助。

任何人都可以帮忙吗?

0 投票
0 回答
19 浏览

android - Android 渲染线程奇怪的行为:启动时间

我有一个启动器活动,它的视图 (XML) 有一个底部导航菜单、一个侧边抽屉和一个 FrameLayout 作为片段容器。

在查看跟踪日志时,我们发现某些服务需要花费大量时间,因此 API 调用(从该服务完成)被延迟。

服务连接后将调用下一个屏幕(为主页添加片段)。

我重构了一个单例而不是服务,并在不等待服务启动的情况下调用下一个屏幕

但令人惊讶的是,启动时间实际上增加了

在进一步调查中,我发现之前绘制活动框架然后片段框架的渲染器线程现在不首先绘制活动框架,它结合了两者进行绘制

Creating EGLContext在应该绘制活动框架之后,渲染器线程上有一个间隙。

这导致冷启动显示时间增加,而用户看到屏幕的实际时间减少

如何确保在片段之前呈现冷启动显示

0 投票
1 回答
45 浏览

firebase - 获取云功能冷启动前的时间戳

我使用 Google Firebase 云功能。

需要明确的是,我可以冷启动,我不想减少启动时间。

我想获得与函数开始之前收到请求的时间相对应的时间戳。

最终目标是估计持续时间。

我们的服务器在数据库中保存一条带有时间戳的记录,然后我们调用外部服务。

这个外部 API 将调用我们服务器上的 webhook 来更新状态。

我们想要测量保存的记录和 webhook 调用之间的持续时间。

它在大多数情况下都有效,但是当云功能遇到冷启动时,它会影响统计信息。

我在文档中使用此信息查找变量,但没有找到任何东西。

我检查了来自外部服务的标头以获取时间戳,但那里也没有任何内容。

0 投票
1 回答
65 浏览

android - Android 冷应用启动:如何优化 Application.onCreate 的时间?

我当前的应用程序需要冷启动~8 seconds,我想对其进行优化。
出于这个原因,我在我的应用程序onCreate (应用程序,而不是活动)中添加了一个日志条目

在查看日志并测量时间时,我发现上面提到的 8 秒包括以下内容:
Tapping app icon => Application.onCreate= 4 秒
Application.onCreate => my Activity visible= 4 秒

我知道我可以从 Application.onCreate() 开始优化时间。这是我的代码,我可以加快这部分的速度。
但是在调用 Application.onCreate 之前,如何优化系统所需的时间呢? 谢谢!

0 投票
2 回答
89 浏览

amazon-web-services - 在许多 lambda 函数之间共享“初始化阶段”

在我们的堆栈中,我们使用了许多分离的 lambda 函数(每个函数都作为 HTTP 或 WS 处理程序),并且每个函数都导入大小相当大的实用程序。这些必需的实用程序还处理与外部实体(缓存和数据库)的连接,因此每次我们调用该函数时,都会有一个持续 1 到 2 秒的初始化阶段。由于不同的函数有分离的运行时(即使我们使用到同一个数据库的连接并到处缓存),init 阶段发生在每个函数的分离中。如果它们需要相同的依赖关系,这是否可能(可能与 lambda 层)在许多函数之间共享“初始化阶段”?比如基于下面的js代码:

假设我们的执行顺序如下: handler_A ----> handler_A ----> handler_B

在这种情况下,第二次执行 forhandler_A 应该能够db从第一次执行中重用,但这不适用于handler_b.

这是否可以重用“初始化阶段”,或者换句话说,如果在 handler_B 之前几秒钟使用了 handler_A,则保持 handler_B 的热启动?任何帮助将不胜感激!

0 投票
0 回答
44 浏览

amazon-web-services - 自动配置的 Lambda 需要初始化时间

我在 VPC 中有一个 Lambda 函数来访问 ElasticSearch Endpoints。Lambda 已自动配置(Provisioned Concurrency)。问题是,每当 Lambda 函数执行时,都会有一个初始化时间。我已经设置了其他没有 VPC 设置和自动配置的 Lambda,它们没有冷启动问题。

读到了 Lambda 在 VPC 中初始化 ENI 并且 Lambda 需要将自身附加到 ENI 时花费的额外时间。但是链接的文档没有提到 Lambda 是否启用了自动配置。

我想知道 Lambda 是否在 VPC 中,即使它已启用 Auto Provisioning,是否仍需要相当长的初始化时间,这在 X-Ray Traces 上可以看到。此外,如果这是真的,有没有办法通过发出虚拟 CloudWatch 警报来保持 Lambda 温暖来减少此初始化时间?

0 投票
2 回答
112 浏览

firebase - 在谷歌云指标资源管理器中测量冷启动时间

我们正在努力进行一些优化,以减少我们的 Firebase 云功能中的冷启动时间。因此,我们想比较这些更改实施前后的执行时间。

是否有可靠的方法来测量谷歌云指标资源管理器中云功能的冷启动时间?

我能找到的最接近的指标是执行时间,但不清楚这是否包括在运行函数之前加载依赖项所需的时间。

指标