gpt4 book ai didi

javascript - Angular 4 + Http 在 Cordova 中未进行垃圾收集

转载 作者:行者123 更新时间:2023-11-28 04:49:19 25 4
gpt4 key购买 nike

我有一个场景,我需要每 30 秒使用 GET 请求轮询一次服务并将其存储起来以供 UI 显示。我已将 GET 请求包装在 setInterval w/30000ms 中。我看到的是,在浏览器中每次调用后,内存都会在 100k 到 200k 之间攀升。大约 8mb 左右后,浏览器会正确进行垃圾收集,并且内存会回落 4-5mb。

我的问题是,这个应用程序封装在 Cordova 6.5 中,在应用程序崩溃之前,内存会攀升大约 4 天。崩溃日志显示与内存耗尽相关的问题。我还使用 xCode 检查了正在运行的应用程序,并注意到与我在浏览器中看到的内存爬升相同,但它永远不会被收集。我倾向于认为在 setInterval 调用中实例化的 Observable 的垃圾收集存在一些问题。

我创建了一个 plunkr这表明内存攀登。寻找 1)为什么会发生这种情况,以及 2)如何纠正它,而不必破坏 View 并重新加载它(这是我暂时采取的方法)。

Plunkr

setInterval(() => {
this.http.get('./people.json')
.subscribe((response) => {
this.people = response;
}, (err) => {
//console.log('Error');
});
}, 15000);

环境:Angular 4.0.0/RxJS 5.2.0/@angular/http 4.0.0/Cordova 6.5/iOS 10.3

最佳答案

使用.unsubscribe。在每个时间间隔中,您设置一个新的订阅。

关于javascript - Angular 4 + Http 在 Cordova 中未进行垃圾收集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43082293/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com