Javascript 内存增长是本机的
我的应用程序只包含一个主屏幕,并且应该运行很长一段时间(在kiosk模式下,持续数周) 过了一段时间,我注意到它由于内存增长而崩溃(它变成了500000K)。 我开始研究这个bug,并创建了这个应用程序的简化版本:它所做的一个组件就是每500毫秒更改一次用户界面,并在夜间运行 我的组件代码:Javascript 内存增长是本机的,javascript,android,react-native,Javascript,Android,React Native,我的应用程序只包含一个主屏幕,并且应该运行很长一段时间(在kiosk模式下,持续数周) 过了一段时间,我注意到它由于内存增长而崩溃(它变成了500000K)。 我开始研究这个bug,并创建了这个应用程序的简化版本:它所做的一个组件就是每500毫秒更改一次用户界面,并在夜间运行 我的组件代码: import React, {useEffect, useState} from 'react'; import {StyleSheet, View, Text} from 'react-native';
import React, {useEffect, useState} from 'react';
import {StyleSheet, View, Text} from 'react-native';
let counter = 0;
const Home = ({
}) => {
// State
const [param1, setParam1] = useState(0);
const [param2, setParam2] = useState(0);
const [param3, setParam3] = useState(0);
const [param4, setParam4] = useState(0);
const [param5, setParam5] = useState(0);
const [param6, setParam6] = useState(0);
// Effects
useEffect(() => {
// <- component did mount + unmount equivalent
const interval = setInterval(() => {
counter += 1;
setParam1(counter)
setParam2(counter)
setParam3(counter)
setParam4(counter)
setParam5(counter)
setParam6(counter)
}, 500);
return () => {
clearInterval(interval)
};
}, []);
const connectivitySummary = () => {
return (
<View>
<Text>{param1}</Text>
<Text>{param2}</Text>
<Text>{param3}</Text>
<Text>{param4}</Text>
<Text>{param5}</Text>
<Text>{param6}</Text>
</View>
);
};
return (
<View style={{flex: 1}}>
<View>{connectivitySummary()}</View>
</View>
);
};
export default Home;
import React,{useffect,useState}来自“React”;
从“react native”导入{样式表、视图、文本};
设计数器=0;
康斯特之家=({
}) => {
//陈述
const[param1,setParam1]=useState(0);
const[param2,setParam2]=useState(0);
常量[param3,setParam3]=useState(0);
const[param4,setParam4]=useState(0);
const[param5,setParam5]=useState(0);
const[param6,setParam6]=useState(0);
//影响
useffect(()=>{
// {
计数器+=1;
setParam1(计数器)
setParam2(计数器)
setParam3(计数器)
设置参数4(计数器)
设置参数5(计数器)
设置参数6(计数器)
}, 500);
return()=>{
清除间隔(间隔)
};
}, []);
const connectivitySummary=()=>{
返回(
{param1}
{param2}
{3}
{param4}
{param5}
{param6}
);
};
返回(
{connectivitySummary()}
);
};
导出默认主页;
结果是:
当我开始运行这个应用程序时,内存使用量大约为46000K
夜间运行后,内存使用量214338K:
有人能告诉我我错过了什么吗?为什么会出现这种巨大的内存增长
关于setInterval:我知道setInterval可能会导致内存泄漏,但GC假定会清除它(请检查)
React本机版本:0.60.5
谢谢你的帮助