Rumah hujung hadapan web tutorial js 在使用angular4中出现JavaScript内存溢出问题(详细教程)

在使用angular4中出现JavaScript内存溢出问题(详细教程)

Jun 01, 2018 am 09:47 AM
javascript Ingatan

本篇文章主要介绍了angular4 JavaScript内存溢出问题,现在分享给大家,也给大家做个参考。

最近在写基于angular4的项目的时候,在build --prod的时候,突然措手不及的蹦出个报错,大致错误如下:

70% building modules 1345/1345 modules 0 active
<--- Last few GCs --->
ms: Mark-sweep 703.9 (837.9) -> 701.4 (811.9) MB, 331.3 / 0 ms [allocation failure] [GC in old space requested].
ms: Mark-sweep 701.4 (811.9) -> 701.4 (790.9) MB, 350.5 / 0 ms [allocation failure] [GC in old space requested].
ms: Mark-sweep 701.4 (790.9) -> 698.0 (760.9) MB, 433.7 / 0 ms [last resort gc].
ms: Mark-sweep 698.0 (760.9) -> 692.7 (751.9) MB, 328.7 / 0 ms [last resort gc].


<--- JS stacktrace --->

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

Security context: 00000298510373A9 <JS Object>
  1: /* anonymous */(aka /* anonymous */) [D:\dev\cobalt_wp\node_modules\webpack\lib\FlagDependencyExportsPlugin.js:77] [pc=0000026F721B51D6] (this=0000029851004131 <undefined>,dep=00000150FC6162C9 <a NormalModule with map 0000025741730C01>)
  2: arguments adaptor frame: 3->1
  3: InnerArrayForEach(aka InnerArrayForEach) [native array.js:~924] [pc=0000026F71EE3DCD] (this=000002985100413...

FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - process out of memory
Salin selepas log masuk

注:这里的代码并不是我的真实报错代码,编译时间太长,忘记截取了,大致的错误基本一样,如果你遇到了相同的问题,恭喜了,往下看能找到答案!

当时我是蒙圈了,一直都编译的挺好,怎么突然就溢出了呢?

可能的原因有如下:

1.angular4 在编译的时候,对CPU和内存的需求比较大,当文件数量很多的时候,可能会出现内存不足的情况(有可能);

2.当代码出现大量大数据的循环或者死循环(sever阶段并没有出现溢出,这个概率应该不大);

3.angular订阅的数据在 ngOnDestroy 阶段没有被销毁,造成大量数据占用内存(有可能)

目前没有查到具体是什么原因造成的,哪位大神知道的,请不吝赐教,谢谢!

解决这个问题的过程很波折,这里就不说了,你们估计也不想知道,下面说一下解决方案吧:

核心思路是运用v8引擎的旧属性: --max_old_space_size 来修改内存上线,至于这个属性在哪里设,就是一个磨人的小妖精了!

修改目录: my-project/node_modules/.bin 找到 ng.cmd :

@IF EXIST "%~dp0\node.exe" (
 "%~dp0\node.exe" --max_old_space_size=8192 "%~dp0\..\._@angular_cli@1.0.0@@angular\cli\bin\ng" %*
) ELSE (
 @SETLOCAL
 @SET PATHEXT=%PATHEXT:;.JS;=;%
 node --max_old_space_size=8192 "%~dp0\..\._@angular_cli@1.0.0@@angular\cli\bin\ng" %*
)
Salin selepas log masuk

修改目录: my-project/node_modules/.bin 找到 ngc.cmd :

@IF EXIST "%~dp0\node.exe" (
 "%~dp0\node.exe" --max_old_space_size=8192 "%~dp0\..\._@angular_compiler-cli@4.0.1@@angular\compiler-cli\src\main.js" %*
) ELSE (
 @SETLOCAL
 @SET PATHEXT=%PATHEXT:;.JS;=;%
 node --max_old_space_size=8192 "%~dp0\..\._@angular_compiler-cli@4.0.1@@angular\compiler-cli\src\main.js" %*
)
Salin selepas log masuk

看到里面的--max_old_space_size设置了吗? 至于数字设多少,你们自己看着办吧,我的项目比较大,设个大点的值,以防不测,哈哈!

然后执行 ng build --prod ,你以为这样就行了吗?这才是关键的地方!

本人亲测,如上设置,再执行编译依然会报内存溢出,貌似并没什么卵用!把当前目录切换到 my-project/node_modules/.bin 然后再执行 ng build --prod , 世界一下子就和平了! 本人亲测有效,收好不谢!

上面是我整理给大家的,希望今后会对大家有帮助。

相关文章:

改变vue请求过来的数据中的某一项值的方法

详解使用vue-cli脚手架初始化Vue项目下的项目结构

vue与vue-i18n结合实现后台数据的多语言切换方法


Atas ialah kandungan terperinci 在使用angular4中出现JavaScript内存溢出问题(详细教程). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Pengoptimuman memori yang besar, apakah yang perlu saya lakukan jika komputer menaik taraf kepada kelajuan memori 16g/32g dan tiada perubahan? Pengoptimuman memori yang besar, apakah yang perlu saya lakukan jika komputer menaik taraf kepada kelajuan memori 16g/32g dan tiada perubahan? Jun 18, 2024 pm 06:51 PM

Untuk pemacu keras mekanikal atau pemacu keadaan pepejal SATA, anda akan merasakan peningkatan kelajuan berjalan perisian Jika ia adalah pemacu keras NVME, anda mungkin tidak merasakannya. 1. Import pendaftaran ke dalam desktop dan buat dokumen teks baharu, salin dan tampal kandungan berikut, simpannya sebagai 1.reg, kemudian klik kanan untuk menggabungkan dan memulakan semula komputer. WindowsRegistryEditorVersion5.00[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\MemoryManagement]"DisablePagingExecutive"=d

Bagaimana untuk menyemak penggunaan memori Xiaomi Mi 14Pro? Bagaimana untuk menyemak penggunaan memori Xiaomi Mi 14Pro? Mar 18, 2024 pm 02:19 PM

Baru-baru ini, Xiaomi mengeluarkan telefon pintar mewah berkuasa tinggi Xiaomi 14Pro, yang bukan sahaja mempunyai reka bentuk yang bergaya, tetapi juga mempunyai teknologi hitam dalaman dan luaran. Telefon ini mempunyai prestasi terbaik dan keupayaan berbilang tugas yang sangat baik, membolehkan pengguna menikmati pengalaman telefon mudah alih yang pantas dan lancar. Walau bagaimanapun, prestasi juga akan dipengaruhi oleh memori Ramai pengguna ingin mengetahui cara menyemak penggunaan memori Xiaomi 14Pro, jadi mari kita lihat. Bagaimana untuk menyemak penggunaan memori Xiaomi Mi 14Pro? Pengenalan kepada cara menyemak penggunaan memori Xiaomi 14Pro Buka butang [Pengurusan Aplikasi] dalam [Tetapan] telefon Xiaomi 14Pro. Untuk melihat senarai semua apl yang dipasang, semak imbas senarai dan cari apl yang ingin anda lihat, klik padanya untuk memasuki halaman butiran apl. Dalam halaman butiran permohonan

Adakah terdapat perbezaan besar antara memori 8g dan 16g dalam komputer? (Pilih 8g atau 16g memori komputer) Adakah terdapat perbezaan besar antara memori 8g dan 16g dalam komputer? (Pilih 8g atau 16g memori komputer) Mar 13, 2024 pm 06:10 PM

Apabila pengguna baru membeli komputer, mereka akan tertanya-tanya tentang perbezaan antara memori komputer 8g dan 16g? Perlukah saya memilih 8g atau 16g? Sebagai tindak balas kepada masalah ini, hari ini editor akan menerangkannya kepada anda secara terperinci. Adakah terdapat perbezaan besar antara 8g dan 16g memori komputer? 1. Untuk keluarga biasa atau kerja biasa, memori berjalan 8G boleh memenuhi keperluan, jadi tidak banyak perbezaan antara 8g dan 16g semasa penggunaan. 2. Apabila digunakan oleh peminat permainan, pada masa ini permainan berskala besar pada asasnya bermula pada 6g, dan 8g ialah standard minimum. Pada masa ini, apabila skrin adalah 2k, resolusi yang lebih tinggi tidak akan membawa prestasi kadar bingkai yang lebih tinggi, jadi tiada perbezaan besar antara 8g dan 16g. 3. Bagi pengguna penyuntingan audio dan video, akan terdapat perbezaan yang jelas antara 8g dan 16g.

Sumber mengatakan Samsung Electronics dan SK Hynix akan mengkomersialkan memori mudah alih bertindan selepas 2026 Sumber mengatakan Samsung Electronics dan SK Hynix akan mengkomersialkan memori mudah alih bertindan selepas 2026 Sep 03, 2024 pm 02:15 PM

Menurut berita dari laman web ini pada 3 September, media Korea etnews melaporkan semalam (waktu tempatan) bahawa produk memori mudah alih berstruktur "seperti HBM" SK Hynix akan dikomersialkan selepas 2026. Sumber berkata bahawa kedua-dua gergasi memori Korea menganggap memori mudah alih bertindan sebagai sumber penting hasil masa hadapan dan merancang untuk mengembangkan "memori seperti HBM" kepada telefon pintar, tablet dan komputer riba untuk membekalkan kuasa untuk AI bahagian hujung. Menurut laporan sebelumnya di laman web ini, produk Samsung Electronics dipanggil memori LPWide I/O, dan SK Hynix memanggil teknologi ini VFO. Kedua-dua syarikat telah menggunakan laluan teknikal yang hampir sama, iaitu menggabungkan pembungkusan kipas dan saluran menegak. Memori LPWide I/O Samsung Electronics mempunyai sedikit lebar 512

Samsung mengumumkan penyiapan pengesahan teknologi proses penyusunan ikatan hibrid 16 lapisan, yang dijangka digunakan secara meluas dalam memori HBM4 Samsung mengumumkan penyiapan pengesahan teknologi proses penyusunan ikatan hibrid 16 lapisan, yang dijangka digunakan secara meluas dalam memori HBM4 Apr 07, 2024 pm 09:19 PM

Menurut laporan itu, eksekutif Samsung Electronics Dae Woo Kim berkata bahawa pada Mesyuarat Tahunan Persatuan Mikroelektronik dan Pembungkusan Korea 2024, Samsung Electronics akan melengkapkan pengesahan teknologi memori HBM ikatan hibrid 16 lapisan. Dilaporkan bahawa teknologi ini telah lulus pengesahan teknikal. Laporan itu juga menyatakan bahawa pengesahan teknikal ini akan meletakkan asas untuk pembangunan pasaran memori dalam beberapa tahun akan datang. DaeWooKim berkata bahawa Samsung Electronics telah berjaya menghasilkan memori HBM3 bertindan 16 lapisan berdasarkan teknologi ikatan hibrid Sampel memori berfungsi seperti biasa Pada masa hadapan, teknologi ikatan hibrid bertindan 16 lapisan akan digunakan untuk pengeluaran besar-besaran memori HBM4. ▲Sumber imej TheElec, sama seperti di bawah Berbanding dengan proses ikatan sedia ada, ikatan hibrid tidak perlu menambah bonjolan antara lapisan memori DRAM, tetapi secara langsung menghubungkan lapisan atas dan bawah tembaga kepada kuprum.

Micron: Memori HBM menggunakan 3 kali jumlah wafer, dan kapasiti pengeluaran pada dasarnya ditempah untuk tahun depan Micron: Memori HBM menggunakan 3 kali jumlah wafer, dan kapasiti pengeluaran pada dasarnya ditempah untuk tahun depan Mar 22, 2024 pm 08:16 PM

Menurut berita dari laman web ini pada 21 Mac, Micron mengadakan panggilan persidangan selepas mengeluarkan laporan kewangan suku tahunannya. Pada persidangan itu, Ketua Pegawai Eksekutif Micron Sanjay Mehrotra berkata berbanding memori tradisional, HBM menggunakan lebih banyak wafer. Micron berkata bahawa apabila menghasilkan kapasiti yang sama pada nod yang sama, memori HBM3E yang paling canggih semasa menggunakan wafer tiga kali lebih banyak daripada DDR5 standard, dan dijangka apabila prestasi bertambah baik dan kerumitan pembungkusan semakin meningkat, pada masa hadapan HBM4 Nisbah ini akan terus meningkat. . Merujuk kepada laporan terdahulu di laman web ini, nisbah yang tinggi ini sebahagiannya disebabkan oleh kadar hasil HBM yang rendah. Memori HBM disusun dengan sambungan TSV memori DRAM berbilang lapisan Masalah dengan satu lapisan bermakna keseluruhannya

Lexar melancarkan kit memori Ares Wings of War DDR5 7600 16GB x2: Hynix A-die particles, 1,299 yuan Lexar melancarkan kit memori Ares Wings of War DDR5 7600 16GB x2: Hynix A-die particles, 1,299 yuan May 07, 2024 am 08:13 AM

Menurut berita dari laman web ini pada 6 Mei, Lexar melancarkan memori overclocking DDR57600CL36 siri Ares Wings of War Set 16GBx2 akan tersedia untuk pra-jualan pada 0:00 pada 7 Mei dengan deposit 50 yuan, dan harganya adalah. 1,299 yuan. Memori Lexar Wings of War menggunakan cip memori Hynix A-die, menyokong Intel XMP3.0 dan menyediakan dua pratetap overclocking berikut: 7600MT/s: CL36-46-46-961.4V8000MT/s: CL38-48-49 -1001.45V Dari segi pelesapan haba, set memori ini dilengkapi dengan jaket pelesapan haba aluminium setebal 1.8mm dan dilengkapi dengan pad gris silikon konduktif haba eksklusif PMIC. Memori menggunakan 8 manik LED kecerahan tinggi dan menyokong 13 mod pencahayaan RGB.

Memori yang dipasang tidak muncul pada Windows 11 Memori yang dipasang tidak muncul pada Windows 11 Mar 10, 2024 am 09:31 AM

Jika anda telah memasang RAM baharu tetapi ia tidak dipaparkan pada komputer Windows anda, artikel ini akan membantu anda menyelesaikan isu tersebut. Biasanya, kami meningkatkan prestasi sistem dengan menaik taraf RAM. Walau bagaimanapun, prestasi sistem juga bergantung pada perkakasan lain seperti CPU, SSD, dll. Menaik taraf RAM juga boleh meningkatkan pengalaman permainan anda. Sesetengah pengguna menyedari bahawa memori yang dipasang tidak muncul dalam Windows 11/10. Jika ini berlaku kepada anda, anda boleh menggunakan nasihat yang diberikan di sini. RAM yang dipasang tidak muncul pada Windows 11 Jika RAM yang dipasang tidak muncul pada PC Windows 11/10 anda, cadangan berikut akan membantu anda. Adakah memori yang dipasang serasi dengan papan induk komputer anda? dalam BIO

See all articles