无法处理 geojson:JavaScript 堆内存不足
Unable to process geojson : JavaScript heap out of memory
我正在尝试使用 kepler.gl 处理 geojson 文件并将其可视化。为了使用该文件,我使用了 Kepler 的 processes.processGeojson 模块。该文件为 380Mb,处理它会出现错误
JavaScript 堆内存不足。
[这是一个 运行 时间错误,当我输入 * npm start *
时发生
我试过运行这样的代码
node --max_old_space_size=8192 node_modules/kepler.gl/*.js && npm start
涂上我笔记本电脑的所有 RAM,但这仍然会引发堆内存不足的错误。
这是在 React.js 中编写的导致问题的代码
class App extends Component {
componentDidMount() {
const londonData = Processors.processGeojson(london);
// Create dataset structure
dispatch(addDataToMap({
datasets: {
info: {
label: 'Traffic data in London',
id: 'test_trip_data'
},
// use processGeojson to convert geojson to kerpler.gl struct
data: londonData
}
}));
}
预期结果:当我 运行 使用小型 csv 文件 ( < 2MB) 以上代码时,Web 应用程序 运行 完美运行并预加载数据。
实际结果:由于我尝试处理的geojson是380M,所以出现以下错误
<--- JS stacktrace --->
==== JS stack trace =========================================
0: ExitFrame [pc: 0x2557c4d5be3d]
1: StubFrame [pc: 0x2557c4d4b476]
Security context: 0x13692fb1e6e9 <JSObject>
2: replace [0x13692fb105e9](this=0x1369fe802201 <Very long string[389761882]>,0x13699c38f8e9 <JSRegExp <String[610]: ((['"])(?:(?!|\).|\(?:\r\n|[\s\S]))*()?|`(?:[^`\$]|\[\s\S]|$(?!\{)|$\{(?:[^{}]|\{[^}]*\}?)*\}?)*(`)?)|(\/\/.*)|(\/\*(?:[^*]|\*(?!\/))*(\*\/)?)|(\/(?!\*)(?:\[(?:(?![\]\]).|\.)*\]|(?![\/\]\]...
FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory
1: 0x10003d035 node::Abort() [/usr/local/bin/node]
2: 0x10003d23f node::OnFatalError(char const*, char const*) [/usr/local/bin/node]
3: 0x1001b8e15 v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, bool) [/usr/local/bin/node]
4: 0x100586d72 v8::internal::Heap::FatalProcessOutOfMemory(char const*) [/usr/local/bin/node]
5: 0x100590274 v8::internal::Heap::AllocateRawWithRetryOrFail(int, v8::internal::AllocationSpace, v8::internal::AllocationAlignment) [/usr/local/bin/node]
6: 0x10055f576 v8::internal::Factory::NewFixedArrayWithFiller(v8::internal::Heap::RootListIndex, int, v8::internal::Object*, v8::internal::PretenureFlag) [/usr/local/bin/node]
7: 0x10081e506 v8::internal::Runtime_RegExpExecMultiple(int, v8::internal::Object**, v8::internal::Isolate*) [/usr/local/bin/node]
8: 0x2557c4d5be3d
Abort trap: 6
任何 advice/help/suggestions 解决此问题的方法都将不胜感激。
运行
node --max_old_space_size=8192 app.js
我正在尝试使用 kepler.gl 处理 geojson 文件并将其可视化。为了使用该文件,我使用了 Kepler 的 processes.processGeojson 模块。该文件为 380Mb,处理它会出现错误
JavaScript 堆内存不足。 [这是一个 运行 时间错误,当我输入 * npm start *
时发生我试过运行这样的代码
node --max_old_space_size=8192 node_modules/kepler.gl/*.js && npm start
涂上我笔记本电脑的所有 RAM,但这仍然会引发堆内存不足的错误。
这是在 React.js 中编写的导致问题的代码
class App extends Component {
componentDidMount() {
const londonData = Processors.processGeojson(london);
// Create dataset structure
dispatch(addDataToMap({
datasets: {
info: {
label: 'Traffic data in London',
id: 'test_trip_data'
},
// use processGeojson to convert geojson to kerpler.gl struct
data: londonData
}
}));
}
预期结果:当我 运行 使用小型 csv 文件 ( < 2MB) 以上代码时,Web 应用程序 运行 完美运行并预加载数据。
实际结果:由于我尝试处理的geojson是380M,所以出现以下错误
<--- JS stacktrace --->
==== JS stack trace =========================================
0: ExitFrame [pc: 0x2557c4d5be3d]
1: StubFrame [pc: 0x2557c4d4b476]
Security context: 0x13692fb1e6e9 <JSObject>
2: replace [0x13692fb105e9](this=0x1369fe802201 <Very long string[389761882]>,0x13699c38f8e9 <JSRegExp <String[610]: ((['"])(?:(?!|\).|\(?:\r\n|[\s\S]))*()?|`(?:[^`\$]|\[\s\S]|$(?!\{)|$\{(?:[^{}]|\{[^}]*\}?)*\}?)*(`)?)|(\/\/.*)|(\/\*(?:[^*]|\*(?!\/))*(\*\/)?)|(\/(?!\*)(?:\[(?:(?![\]\]).|\.)*\]|(?![\/\]\]...
FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory
1: 0x10003d035 node::Abort() [/usr/local/bin/node]
2: 0x10003d23f node::OnFatalError(char const*, char const*) [/usr/local/bin/node]
3: 0x1001b8e15 v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, bool) [/usr/local/bin/node]
4: 0x100586d72 v8::internal::Heap::FatalProcessOutOfMemory(char const*) [/usr/local/bin/node]
5: 0x100590274 v8::internal::Heap::AllocateRawWithRetryOrFail(int, v8::internal::AllocationSpace, v8::internal::AllocationAlignment) [/usr/local/bin/node]
6: 0x10055f576 v8::internal::Factory::NewFixedArrayWithFiller(v8::internal::Heap::RootListIndex, int, v8::internal::Object*, v8::internal::PretenureFlag) [/usr/local/bin/node]
7: 0x10081e506 v8::internal::Runtime_RegExpExecMultiple(int, v8::internal::Object**, v8::internal::Isolate*) [/usr/local/bin/node]
8: 0x2557c4d5be3d
Abort trap: 6
任何 advice/help/suggestions 解决此问题的方法都将不胜感激。
运行
node --max_old_space_size=8192 app.js