Vue: SCHWERER FEHLER beim Bauen: Ineffektive Mark-Compacts nahe der Heap-Grenze Zuweisung fehlgeschlagen

Erstellt am 13. Juni 2019  ·  3Kommentare  ·  Quelle: vuejs/vue

Ausführung

2.6.10

Reproduktionslink

https://github.com/greenpdx/opencv-vue

Schritte zum Reproduzieren

npm i opencv.js

füge ein paar Zeilen zu main.js

import * as cv from 'opencv.js'
Vue.prototype.$cv = cv

und versuche dann npm run build

Was wird erwartet?

Building for production...

 DONE  Compiled successfully

Was passiert eigentlich?

⠼  Building for production...

<--- Last few GCs --->

[12278:0x55a446ded250]    48764 ms: Mark-sweep 1336.7 (1441.2) -> 1321.7 (1441.2) MB, 875.5 / 0.0 ms  (average mu = 0.184, current mu = 0.078) allocation failure scavenge might not succeed
[12278:0x55a446ded250]    49725 ms: Mark-sweep 1337.0 (1441.2) -> 1322.0 (1441.7) MB, 892.9 / 0.0 ms  (average mu = 0.130, current mu = 0.071) allocation failure scavenge might not succeed


<--- JS stacktrace --->

==== JS stack trace =========================================

    0: ExitFrame [pc: 0x13e4d8c4fc5d]
Security context: 0x266f3d81d9f1 <JSObject>
    1: Sn(aka Sn) [0x169ed77ba971] [.../test0/node_modules/terser/dist/bundle.min.js:~1] [pc=0x13e4d93a6153](this=0x1ec95ca825b1 <undefined>,0x1ec95ca825b1 <undefined>)
    2: /* anonymous */(aka /* anonymous */) [0xfa94c311551] [.../test0/node_modules/terser/dist/bundle.min.js:~1] [pc=0x13e4d93c1...

FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
 1: 0x55a445721761 node::Abort() [/usr/bin/node]
 2: 0x55a445723255 node::OnFatalError(char const*, char const*) [/usr/bin/node]
 3: 0x55a4458c9002 v8::Utils::ReportOOMFailure(v8::internal::Isolate*, char const*, bool) [/usr/bin/node]
 4: 0x55a4458c925b v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, bool) [/usr/bin/node]
 5: 0x55a445c60573  [/usr/bin/node]
 6: 0x55a445c606b4  [/usr/bin/node]
 7: 0x55a445c70656 v8::internal::Heap::PerformGarbageCollection(v8::internal::GarbageCollector, v8::GCCallbackFlags) [/usr/bin/node]
 8: 0x55a445c70ffe v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) [/usr/bin/node]
 9: 0x55a445c73a1d v8::internal::Heap::AllocateRawWithLightRetry(int, v8::internal::AllocationSpace, v8::internal::AllocationAlignment) [/usr/bin/node]
10: 0x55a445c73a72 v8::internal::Heap::AllocateRawWithRetryOrFail(int, v8::internal::AllocationSpace, v8::internal::AllocationAlignment) [/usr/bin/node]
11: 0x55a445c41418 v8::internal::Factory::AllocateRawArray(int, v8::internal::PretenureFlag) [/usr/bin/node]
12: 0x55a445c41934 v8::internal::Factory::NewFixedArrayWithFiller(v8::internal::Heap::RootListIndex, int, v8::internal::Object*, v8::internal::PretenureFlag) [/usr/bin/node]
13: 0x55a445c41a00 v8::internal::Handle<v8::internal::FixedArray> v8::internal::Factory::NewFixedArrayWithMap<v8::internal::FixedArray>(v8::internal::Heap::RootListIndex, int, v8::internal::PretenureFlag) [/usr/bin/node]
14: 0x55a445d7344c v8::internal::HashTable<v8::internal::NameDictionary, v8::internal::NameDictionaryShape>::New(v8::internal::Isolate*, int, v8::internal::PretenureFlag, v8::internal::MinimumCapacity) [/usr/bin/node]
15: 0x55a445d9539f v8::internal::BaseNameDictionary<v8::internal::NameDictionary, v8::internal::NameDictionaryShape>::EnsureCapacity(v8::internal::Isolate*, v8::internal::Handle<v8::internal::NameDictionary>, int) [/usr/bin/node]
16: 0x55a445d95409 v8::internal::Dictionary<v8::internal::NameDictionary, v8::internal::NameDictionaryShape>::Add(v8::internal::Isolate*, v8::internal::Handle<v8::internal::NameDictionary>, v8::internal::Handle<v8::internal::Name>, v8::internal::Handle<v8::internal::Object>, v8::internal::PropertyDetails, int*) [/usr/bin/node]
17: 0x55a445ed2fc4 v8::internal::Runtime_AddDictionaryProperty(int, v8::internal::Object**, v8::internal::Isolate*) [/usr/bin/node]
18: 0x13e4d8c4fc5d 
⠦  Building for production...^C⏎

Vom Autoren-Repo habe ich keine Antwort..

Hilfreichster Kommentar

FERTIG

nur eine Zeile mit dem Schlüssel

NODE_OPTIONS=--max_old_space_size=4096 npm run build

Alle 3 Kommentare

Das Problem kommt von diesem Repo, nicht von hier, Sie können hier nicht einfach ein Problem eröffnen, weil Sie dort keine Antwort erhalten haben ...
Wenn Sie herausfinden, woher das Problem konkret kommt oder noch besser die Lösung finden, öffnen Sie bitte ein neues Problem mit einer auf den Punkt gebrachten Repro (kein opencv)

@posva
Das Problem liegt an der enormen Größe des Pakets, daher wissen Sie besser, wie Sie das Speicherlimit erhöhen können


Für den Speicherverbrauch in V8 gibt es eine strenge Standardgrenze von rund 1,7 GB, wenn Sie ihn nicht manuell erhöhen.

node --max-old-space-size=4096 yourFile.js

wie macht man das in vue-cli?

FERTIG

nur eine Zeile mit dem Schlüssel

NODE_OPTIONS=--max_old_space_size=4096 npm run build

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen