Hướng dẫn what cause javascript heap out of memory? - điều gì gây ra đống javascript hết bộ nhớ?

Hôm nay tôi đã chạy tập lệnh của mình để lập chỉ mục hệ thống tập tin để làm mới chỉ mục tệp RAID và sau 4h, nó đã bị lỗi với lỗi sau:

[md5:]  241613/241627 97.5%  
[md5:]  241614/241627 97.5%  
[md5:]  241625/241627 98.1%
Creating missing list... [79570 files missing]
Creating new files list... [241627 new files]



11629672 ms: Mark-sweep 1174.6 [1426.5] -> 1172.4 [1418.3] MB, 659.9 / 0 ms [allocation failure] [GC in old space requested].
11630371 ms: Mark-sweep 1172.4 [1418.3] -> 1172.4 [1411.3] MB, 698.9 / 0 ms [allocation failure] [GC in old space requested].
11631105 ms: Mark-sweep 1172.4 [1411.3] -> 1172.4 [1389.3] MB, 733.5 / 0 ms [last resort gc].
11631778 ms: Mark-sweep 1172.4 [1389.3] -> 1172.4 [1368.3] MB, 673.6 / 0 ms [last resort gc].




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

Security context: 0x3d1d329c9e59 
1: SparseJoinWithSeparatorJS[aka SparseJoinWithSeparatorJS] [native array.js:~84] [pc=0x3629ef689ad0] [this=0x3d1d32904189 ,w=0x2b690ce91071 ,L=241627,M=0x3d1d329b4a11 ,N=0x7c953bf4d49 ]
2: Join[aka Join] [native array.js:143] [pc=0x3629ef616696] [this=0x3d1d32904189  NPM
  • Mở hoặc chỉnh sửa
    node --max-old-space-size=8192 --optimize-for-size --max-executable-size=8192  --max_old_space_size=8192 --optimize_for_size --max_executable_size=8192 node_modules/karma/bin/karma start --single-run --max_new_space_size=8192   --prod --aot
    
    3 trong trình soạn thảo yêu thích của bạn
  • Thêm
    node --max-old-space-size=8192 --optimize-for-size --max-executable-size=8192  --max_old_space_size=8192 --optimize_for_size --max_executable_size=8192 node_modules/karma/bin/karma start --single-run --max_new_space_size=8192   --prod --aot
    
    4 vào khối if và khác
  • Tệp

    node --max-old-space-size=8192 --optimize-for-size --max-executable-size=8192  --max_old_space_size=8192 --optimize_for_size --max_executable_size=8192 node_modules/karma/bin/karma start --single-run --max_new_space_size=8192   --prod --aot
    
    5 của bạn trông như thế này sau khi thay đổi:

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

    Đã trả lời ngày 19 tháng 10 năm 2018 lúc 5:30Oct 19, 2018 at 5:30

    Umang Patwaumang PatwaUmang Patwa

    2.5853 huy hiệu vàng29 Huy hiệu bạc40 Huy hiệu đồng3 gold badges29 silver badges40 bronze badges

    0

    Gần đây, trong một trong những dự án của tôi đã gặp phải vấn đề tương tự. Đã thử một vài điều mà bất cứ ai cũng có thể thử làm gỡ lỗi để xác định nguyên nhân gốc rễ:

    1. Như mọi người đã đề xuất, hãy tăng giới hạn bộ nhớ trong nút bằng cách thêm lệnh này:

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

    Ở đây

    node --max-old-space-size=8192 --optimize-for-size --max-executable-size=8192  --max_old_space_size=8192 --optimize_for_size --max_executable_size=8192 node_modules/karma/bin/karma start --single-run --max_new_space_size=8192   --prod --aot
    
    6 Tôi đã xác định cho ứng dụng của mình là 1536 [vì bộ nhớ pod Kubernetes của tôi là giới hạn 2 GB, yêu cầu 1,5 GB]

    Vì vậy, luôn luôn xác định

    node --max-old-space-size=8192 --optimize-for-size --max-executable-size=8192  --max_old_space_size=8192 --optimize_for_size --max_executable_size=8192 node_modules/karma/bin/karma start --single-run --max_new_space_size=8192   --prod --aot
    
    6 dựa trên giới hạn cơ sở hạ tầng/kiến trúc frontend của bạn [ít hơn một chút so với giới hạn]

    Một chú thích nghiêm ngặt ở đây trong lệnh trên, sử dụng

    #increase to 1gb
    node --max-old-space-size=1024 index.js
    
    #increase to 2gb
    node --max-old-space-size=2048 index.js 
    
    #increase to 3gb
    node --max-old-space-size=3072 index.js
    
    #increase to 4gb
    node --max-old-space-size=4096 index.js
    
    #increase to 5gb
    node --max-old-space-size=5120 index.js
    
    #increase to 6gb
    node --max-old-space-size=6144 index.js
    
    #increase to 7gb
    node --max-old-space-size=7168 index.js
    
    #increase to 8gb 
    node --max-old-space-size=8192 index.js 
    
    
    8 sau lệnh
    node --max-old-space-size=8192 --optimize-for-size --max-executable-size=8192  --max_old_space_size=8192 --optimize_for_size --max_executable_size=8192 node_modules/karma/bin/karma start --single-run --max_new_space_size=8192   --prod --aot
    
    9 không theo tên tệp
    {
    "version": "0.2.0",
    "configurations": [{
            "type": "node",
            "request": "launch",
            "name": "Launch Program",
            "program": "${workspaceRoot}\\server.js"
        },
        {
            "type": "node",
            "request": "launch",
            "name": "Launch Training Script",
            "program": "${workspaceRoot}\\training-script.js",
            "runtimeArgs": [
                "--max-old-space-size=4096"
            ]
        }
    ]}
    
    0.

    1. Nếu bạn có tệp cấu hình

      {
      "version": "0.2.0",
      "configurations": [{
              "type": "node",
              "request": "launch",
              "name": "Launch Program",
              "program": "${workspaceRoot}\\server.js"
          },
          {
              "type": "node",
              "request": "launch",
              "name": "Launch Training Script",
              "program": "${workspaceRoot}\\training-script.js",
              "runtimeArgs": [
                  "--max-old-space-size=4096"
              ]
          }
      ]}
      
      1 thì hãy kiểm tra những điều sau:

      • worker_connections:

        {
        "version": "0.2.0",
        "configurations": [{
                "type": "node",
                "request": "launch",
                "name": "Launch Program",
                "program": "${workspaceRoot}\\server.js"
            },
            {
                "type": "node",
                "request": "launch",
                "name": "Launch Training Script",
                "program": "${workspaceRoot}\\training-script.js",
                "runtimeArgs": [
                    "--max-old-space-size=4096"
                ]
            }
        ]}
        
        2 [đối với các ứng dụng phía trước hạng nặng] [NGINX mặc định là
        {
        "version": "0.2.0",
        "configurations": [{
                "type": "node",
                "request": "launch",
                "name": "Launch Program",
                "program": "${workspaceRoot}\\server.js"
            },
            {
                "type": "node",
                "request": "launch",
                "name": "Launch Training Script",
                "program": "${workspaceRoot}\\training-script.js",
                "runtimeArgs": [
                    "--max-old-space-size=4096"
                ]
            }
        ]}
        
        3 kết nối trên mỗi
        {
        "version": "0.2.0",
        "configurations": [{
                "type": "node",
                "request": "launch",
                "name": "Launch Program",
                "program": "${workspaceRoot}\\server.js"
            },
            {
                "type": "node",
                "request": "launch",
                "name": "Launch Training Script",
                "program": "${workspaceRoot}\\training-script.js",
                "runtimeArgs": [
                    "--max-old-space-size=4096"
                ]
            }
        ]}
        
        4, quá thấp đối với các ứng dụng hiện đại]

      • Sử dụng:

        {
        "version": "0.2.0",
        "configurations": [{
                "type": "node",
                "request": "launch",
                "name": "Launch Program",
                "program": "${workspaceRoot}\\server.js"
            },
            {
                "type": "node",
                "request": "launch",
                "name": "Launch Training Script",
                "program": "${workspaceRoot}\\training-script.js",
                "runtimeArgs": [
                    "--max-old-space-size=4096"
                ]
            }
        ]}
        
        5 [Phương pháp hiệu quả] [NGINX hỗ trợ nhiều phương pháp xử lý kết nối]]

      • Thêm những điều sau đây để giải phóng nhân viên của bạn khỏi việc bận rộn trong việc xử lý một số nhiệm vụ không mong muốn. .client_body_timeout , reset_timeout_connection , client_header_timeout,keepalive_timeout ,send_timeout].

    2. Hủy bỏ tất cả các công cụ ghi nhật ký/theo dõi như

      {
      "version": "0.2.0",
      "configurations": [{
              "type": "node",
              "request": "launch",
              "name": "Launch Program",
              "program": "${workspaceRoot}\\server.js"
          },
          {
              "type": "node",
              "request": "launch",
              "name": "Launch Training Script",
              "program": "${workspaceRoot}\\training-script.js",
              "runtimeArgs": [
                  "--max-old-space-size=4096"
              ]
          }
      ]}
      
      6 [SEO], v.v.middlewares or turn off.

    3. Bây giờ gỡ lỗi mức mã: Trong tệp

      {
      "version": "0.2.0",
      "configurations": [{
              "type": "node",
              "request": "launch",
              "name": "Launch Program",
              "program": "${workspaceRoot}\\server.js"
          },
          {
              "type": "node",
              "request": "launch",
              "name": "Launch Training Script",
              "program": "${workspaceRoot}\\training-script.js",
              "runtimeArgs": [
                  "--max-old-space-size=4096"
              ]
          }
      ]}
      
      7 chính của bạn, hãy xóa
      {
      "version": "0.2.0",
      "configurations": [{
              "type": "node",
              "request": "launch",
              "name": "Launch Program",
              "program": "${workspaceRoot}\\server.js"
          },
          {
              "type": "node",
              "request": "launch",
              "name": "Launch Training Script",
              "program": "${workspaceRoot}\\training-script.js",
              "runtimeArgs": [
                  "--max-old-space-size=4096"
              ]
          }
      ]}
      
      8 không mong muốn chỉ là in một tin nhắn.
      : In your main
      {
      "version": "0.2.0",
      "configurations": [{
              "type": "node",
              "request": "launch",
              "name": "Launch Program",
              "program": "${workspaceRoot}\\server.js"
          },
          {
              "type": "node",
              "request": "launch",
              "name": "Launch Training Script",
              "program": "${workspaceRoot}\\training-script.js",
              "runtimeArgs": [
                  "--max-old-space-size=4096"
              ]
          }
      ]}
      
      7 file , remove unwanted
      {
      "version": "0.2.0",
      "configurations": [{
              "type": "node",
              "request": "launch",
              "name": "Launch Program",
              "program": "${workspaceRoot}\\server.js"
          },
          {
              "type": "node",
              "request": "launch",
              "name": "Launch Training Script",
              "program": "${workspaceRoot}\\training-script.js",
              "runtimeArgs": [
                  "--max-old-space-size=4096"
              ]
          }
      ]}
      
      8 which is just printing a message.

    4. Bây giờ hãy kiểm tra mọi tuyến máy chủ I.E

      {
      "version": "0.2.0",
      "configurations": [{
              "type": "node",
              "request": "launch",
              "name": "Launch Program",
              "program": "${workspaceRoot}\\server.js"
          },
          {
              "type": "node",
              "request": "launch",
              "name": "Launch Training Script",
              "program": "${workspaceRoot}\\training-script.js",
              "runtimeArgs": [
                  "--max-old-space-size=4096"
              ]
          }
      ]}
      
      9 bên dưới các kịch bản:

    • node --max-old-space-size= path-to/fileName.js
      
      0 // Bạn có thực sự cần phải chờ dữ liệu hoặc API đó trả về một cái gì đó để trả lời mà tôi phải chờ không ?? , Nếu không sửa đổi như thế này:
     node --max-old-space-size=4096 yourFile.js
    
    6
    • Phần khác: Nếu không có lỗi nào thì chỉ đơn giản là

      node --max-old-space-size= path-to/fileName.js
      
      1, không
      node --max-old-space-size= path-to/fileName.js
      
      2.NO
      node --max-old-space-size= path-to/fileName.js
      
      2.

    • Lỗi Phần: Một số người định nghĩa là

      node --max-old-space-size= path-to/fileName.js
      
      3 hoặc
      node --max-old-space-size= path-to/fileName.js
      
      4 tạo ra sự nhầm lẫn và sai lầm. như thế này:

       node --max-old-space-size=4096 yourFile.js
      
      7
    • Xóa

      node --max-old-space-size= path-to/fileName.js
      
      5,
      node --max-old-space-size= path-to/fileName.js
      
      6 Các thư viện không sử dụng khác bằng lệnh
      node --max-old-space-size= path-to/fileName.js
      
      7.

    • Trong tệp dịch vụ Axios, hãy kiểm tra các phương thức và đăng nhập đúng cách hoặc không thích:

       node --max-old-space-size=4096 yourFile.js
      
      8
    • Tiết kiệm bản thân khỏi việc sử dụng

      node --max-old-space-size= path-to/fileName.js
      
      8, vv trên bộ dữ liệu lớn. [mà tôi cũng có thể thấy trong nhật ký hiển thị ở trên của bạn.

    1. Cuối cùng nhưng không kém phần quan trọng, trong mỗi lần ứng dụng của bạn gặp sự cố hoặc POD được khởi động lại, hãy kiểm tra nhật ký. Trong nhật ký đặc biệt tìm kiếm phần này:
      node --max-old-space-size= path-to/fileName.js
      
      9 Điều này sẽ cung cấp cho bạn lý do tại sao, ở đâu và ai là thủ phạm đằng sau vụ tai nạn.
      node --max-old-space-size= path-to/fileName.js
      
      9
      This will give you why , where and who is the culprit behind the crash.

    Đã trả lời ngày 2 tháng 4 năm 2021 lúc 5:02Apr 2, 2021 at 5:02

    Sidvermasidvermasidverma

    1.08312 Huy hiệu bạc22 Huy hiệu đồng12 silver badges22 bronze badges

    Tôi sẽ đề cập đến 2 loại giải pháp.

    Giải pháp của tôi: Trong trường hợp của tôi, tôi thêm điều này vào các biến môi trường của mình:

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

    Nhưng ngay cả khi tôi khởi động lại máy tính của mình, nó vẫn không hoạt động. Thư mục dự án của tôi nằm trong d: \ đĩa. Vì vậy, tôi loại bỏ dự án của mình thành C: \ Disk và nó đã hoạt động.

    Giải pháp của đồng đội của tôi: Cấu hình Pack.Json cũng được hoạt động.

    NODE_OPTIONS="--max-old-space-size=4096" node ...
    
    0

    Đã trả lời ngày 10 tháng 8 năm 2021 lúc 13:09Aug 10, 2021 at 13:09

    Cansucansucansu

    1.0408 Huy hiệu bạc21 Huy hiệu đồng8 silver badges21 bronze badges

    1

    Đối với những người mới bắt đầu khác như tôi, người không tìm thấy bất kỳ giải pháp phù hợp nào cho lỗi này, hãy kiểm tra phiên bản nút được cài đặt [x32, x64, x86]. Tôi có CPU 64 bit và tôi đã cài đặt phiên bản nút x86, gây ra lỗi

    node --max-old-space-size=16000 scripts/build.js
    
    0.node version installed [x32, x64, x86]. I have a 64-bit CPU and I've installed x86 node version, which caused the
    node --max-old-space-size=16000 scripts/build.js
    
    0 error.

    Đã trả lời ngày 22 tháng 9 năm 2020 lúc 22:33Sep 22, 2020 at 22:33

    Nếu bạn muốn thay đổi bộ nhớ trên toàn cầu cho nút [Windows], hãy đến Cài đặt hệ thống nâng cao -> Biến môi trường -> Biến người dùng mới

    NODE_OPTIONS="--max-old-space-size=4096" node ...
    
    1

    Đã trả lời ngày 23 tháng 9 năm 2019 lúc 14:38Sep 23, 2019 at 14:38

    Ahmed Aboudahmed AboudAhmed Aboud

    1.14413 Huy hiệu bạc19 Huy hiệu đồng13 silver badges19 bronze badges

    0

    Bạn cũng có thể thay đổi các biến môi trường của cửa sổ bằng:

    NODE_OPTIONS="--max-old-space-size=4096" node ...
    
    2

    Đã trả lời ngày 17 tháng 10 năm 2020 lúc 17:47Oct 17, 2020 at 17:47

    FiringblanksfiresblanksFiringBlanks

    1.8904 Huy hiệu vàng30 Huy hiệu bạc46 Huy hiệu đồng4 gold badges30 silver badges46 bronze badges

    Unix [Mac OS] [Mac OS]

    1. Mở một thiết bị đầu cuối và mở tệp .zshrc của chúng tôi bằng Nano như vậy [điều này sẽ tạo một, nếu không tồn tại]:.zshrc file using nano like so [this will create one, if one doesn't exist]:

      node --max-old-space-size=16000 scripts/build.js
      
      1

    2. Cập nhật biến môi trường Node_Options của chúng tôi bằng cách thêm dòng sau vào tệp .zshrc hiện đang mở của chúng tôi:NODE_OPTIONS environment variable by adding the following line into our currently open .zshrc file:

      node --max-old-space-size=16000 scripts/build.js
      
      2

    Xin lưu ý rằng chúng tôi có thể đặt số lượng megabyte được truyền vào bất cứ thứ gì chúng tôi thích, với điều kiện hệ thống của chúng tôi có đủ bộ nhớ [ở đây chúng tôi đang vượt qua 8192 megabyte khoảng 8 GB].

    1. Lưu và thoát Nano bằng cách nhấn:

      node --max-old-space-size=16000 scripts/build.js
      
      3, sau đó
      node --max-old-space-size=16000 scripts/build.js
      
      4 để đồng ý và cuối cùng là
      node --max-old-space-size=16000 scripts/build.js
      
      5 để lưu các thay đổi.

    2. Đóng và mở lại thiết bị đầu cuối để đảm bảo những thay đổi của chúng tôi đã được công nhận. and reopen the terminal to make sure our changes have been recognised.

    3. Chúng tôi có thể in nội dung của tệp .zshrc của chúng tôi để xem liệu các thay đổi của chúng tôi có được lưu như vậy không như vậy:

      node --max-old-space-size=16000 scripts/build.js
      
      6.print out the contents of our .zshrc file to see if our changes were saved like so:
      node --max-old-space-size=16000 scripts/build.js
      
      6.

    Linux [Ubuntu] [Ubuntu]

    1. Mở thiết bị đầu cuối và mở tệp .bashrc bằng Nano như vậy:.bashrc file using nano like so:

      node --max-old-space-size=16000 scripts/build.js
      
      7

    Các bước còn lại tương tự với các bước Mac từ phía trên, ngoại trừ chúng tôi rất có thể sẽ sử dụng

    node --max-old-space-size=16000 scripts/build.js
    
    8 theo mặc định [trái ngược với ~/.zshrc]. Vì vậy, những giá trị này sẽ cần phải được thay thế!

    Liên kết đến tài liệu nodejs

    Đã trả lời ngày 14 tháng 2 lúc 5:30Feb 14 at 5:30

    JSON C11JSON C11JSON C11

    10,6K7 Huy hiệu vàng77 Huy hiệu bạc64 Huy hiệu đồng7 gold badges77 silver badges64 bronze badges

    Tôi đã gặp lỗi này trên AWS đàn hồi Beanstalk, loại phiên bản nâng cấp từ T3.Micro [tầng miễn phí] lên T3.Small đã sửa lỗi

    Đã trả lời ngày 9 tháng 12 năm 2021 lúc 9:31Dec 9, 2021 at 9:31

    Atazminatazminatazmin

    Phù hiệu vàng 3.9131 Huy hiệu bạc18 Huy hiệu đồng1 gold badge22 silver badges18 bronze badges

    Trong trường hợp của tôi, tôi đã nâng cấp phiên bản Node.js lên mới nhất [phiên bản 12.8.0] và nó hoạt động như một sự quyến rũ.

    Aplet123

    32.2k1 Huy hiệu vàng23 Huy hiệu bạc 50 Huy hiệu Đồng1 gold badge23 silver badges50 bronze badges

    Đã trả lời ngày 12 tháng 6 năm 2020 lúc 8:06Jun 12, 2020 at 8:06

    3

    Sử dụng tùy chọn

    node --max-old-space-size=16000 scripts/build.js
    
    9. Nó sẽ tập trung vào việc sử dụng ít RAM hơn.

    Đã trả lời ngày 2 tháng 5 năm 2021 lúc 1:15May 2, 2021 at 1:15

    Vini Dalvinovini DalvinoVini Dalvino

    4751 Huy hiệu vàng6 Huy hiệu bạc21 Huy hiệu đồng1 gold badge6 silver badges21 bronze badges

    1

    Nâng cấp nút lên phiên bản mới nhất. Tôi đã ở Node 6.6 với lỗi này và nâng cấp lên 8.9.4 và vấn đề đã biến mất.

    Đã trả lời ngày 12 tháng 1 năm 2018 lúc 7:01Jan 12, 2018 at 7:01

    Tôi đã trải qua vấn đề tương tự ngày hôm nay. Vấn đề đối với tôi là, tôi đã cố gắng nhập nhiều dữ liệu vào cơ sở dữ liệu trong dự án NextJS của mình.NextJS project.

    Vì vậy, những gì tôi đã làm là, tôi đã cài đặt gói Win-Node-Env như thế này:

    NODE_OPTIONS="--max-old-space-size=4096" node ...
    
    3

    Bởi vì máy phát triển của tôi là Windows. Tôi đã cài đặt nó cục bộ hơn là toàn cầu. Bạn có thể cài đặt nó trên toàn cầu cũng như thế này:

    const v8 = require['v8'];
    const totalHeapSize = v8.getHeapStatistics[].total_available_size;
    const totalHeapSizeGb = [totalHeapSize / 1024 / 1024 / 1024].toFixed[2];
    console.log['totalHeapSizeGb: ', totalHeapSizeGb];
    
    0Windows. I installed it locally than globally. You can install it globally also like this:
    const v8 = require['v8'];
    const totalHeapSize = v8.getHeapStatistics[].total_available_size;
    const totalHeapSizeGb = [totalHeapSize / 1024 / 1024 / 1024].toFixed[2];
    console.log['totalHeapSizeGb: ', totalHeapSizeGb];
    
    0

    Và sau đó trong tệp

    const v8 = require['v8'];
    const totalHeapSize = v8.getHeapStatistics[].total_available_size;
    const totalHeapSizeGb = [totalHeapSize / 1024 / 1024 / 1024].toFixed[2];
    console.log['totalHeapSizeGb: ', totalHeapSizeGb];
    
    1 của dự án NextJS của tôi, tôi đã thêm một tập lệnh khởi động khác như sau:

    NODE_OPTIONS="--max-old-space-size=4096" node ...
    
    4

    Ở đây, đang vượt qua tùy chọn nút, tức là. Đặt 8GB làm giới hạn. Vì vậy, tệp

    const v8 = require['v8'];
    const totalHeapSize = v8.getHeapStatistics[].total_available_size;
    const totalHeapSizeGb = [totalHeapSize / 1024 / 1024 / 1024].toFixed[2];
    console.log['totalHeapSizeGb: ', totalHeapSizeGb];
    
    1 của tôi có vẻ như thế này:

    NODE_OPTIONS="--max-old-space-size=4096" node ...
    
    5

    Và sau đó tôi chạy nó như thế này:

    NODE_OPTIONS="--max-old-space-size=4096" node ...
    
    6

    Đối với tôi, tôi chỉ phải đối mặt với vấn đề trên máy phát triển của mình [vì tôi đang thực hiện việc nhập dữ liệu lớn]. Do đó giải pháp này. Được nghĩ để chia sẻ điều này vì nó có thể có ích cho người khác.

    Đã trả lời ngày 8 tháng 3 lúc 21:44Mar 8 at 21:44

    Tôi đã gặp vấn đề tương tự trong máy Windows và tôi nhận thấy rằng vì một số lý do, nó không hoạt động trong git bash, nhưng nó hoạt động trong shell power shell

    Đã trả lời ngày 30 tháng 8 lúc 10:03Aug 30 at 10:03

    Chỉ trong trường hợp nó có thể giúp mọi người gặp sự cố này trong khi sử dụng các ứng dụng NodeJS tạo ra ghi nhật ký nặng, một đồng nghiệp đã giải quyết vấn đề này bằng cách đưa [các] đầu ra tiêu chuẩn vào một tệp.

    Đã trả lời ngày 4 tháng 4 năm 2018 lúc 8:39Apr 4, 2018 at 8:39

    Adrien Jolyadrien JolyAdrien Joly

    4.8504 Huy hiệu vàng26 Huy hiệu bạc43 Huy hiệu Đồng4 gold badges26 silver badges43 bronze badges

    Nếu bạn đang cố gắng khởi chạy không phải

    node --max-old-space-size=8192 --optimize-for-size --max-executable-size=8192  --max_old_space_size=8192 --optimize_for_size --max_executable_size=8192 node_modules/karma/bin/karma start --single-run --max_new_space_size=8192   --prod --aot
    
    9, mà là một số mềm khác, ví dụ
    const v8 = require['v8'];
    const totalHeapSize = v8.getHeapStatistics[].total_available_size;
    const totalHeapSizeGb = [totalHeapSize / 1024 / 1024 / 1024].toFixed[2];
    console.log['totalHeapSizeGb: ', totalHeapSizeGb];
    
    4, bạn có thể sử dụng biến môi trường và gói
    const v8 = require['v8'];
    const totalHeapSize = v8.getHeapStatistics[].total_available_size;
    const totalHeapSizeGb = [totalHeapSize / 1024 / 1024 / 1024].toFixed[2];
    console.log['totalHeapSizeGb: ', totalHeapSizeGb];
    
    5:

    NODE_OPTIONS="--max-old-space-size=4096" node ...
    
    7

    Đã trả lời ngày 30 tháng 4 năm 2019 lúc 1:50Apr 30, 2019 at 1:50

    PiterdenpiterdenPiterden

    7555 Huy hiệu bạc16 Huy hiệu Đồng5 silver badges16 bronze badges

    Đối với gói dự án Angular, tôi đã thêm dòng dưới đây vào tệp pakage.json của tôi trong phần Scripts.added the below line to my pakage.json file in the scripts section.

    NODE_OPTIONS="--max-old-space-size=4096" node ...
    
    8

    Bây giờ, để gói mã của mình, tôi sử dụng

    const v8 = require['v8'];
    const totalHeapSize = v8.getHeapStatistics[].total_available_size;
    const totalHeapSizeGb = [totalHeapSize / 1024 / 1024 / 1024].toFixed[2];
    console.log['totalHeapSizeGb: ', totalHeapSizeGb];
    
    6 thay vì
    const v8 = require['v8'];
    const totalHeapSize = v8.getHeapStatistics[].total_available_size;
    const totalHeapSizeGb = [totalHeapSize / 1024 / 1024 / 1024].toFixed[2];
    console.log['totalHeapSizeGb: ', totalHeapSizeGb];
    
    7

    hi vọng điêu nay co ich!

    Đã trả lời ngày 4 tháng 10 năm 2019 lúc 16:00Oct 4, 2019 at 16:00

    rgantlargantlargantla

    1.8808 huy hiệu bạc16 huy hiệu đồng8 silver badges16 bronze badges

    Đối với

    const v8 = require['v8'];
    const totalHeapSize = v8.getHeapStatistics[].total_available_size;
    const totalHeapSizeGb = [totalHeapSize / 1024 / 1024 / 1024].toFixed[2];
    console.log['totalHeapSizeGb: ', totalHeapSizeGb];
    
    8, đây là cách tôi đã sửa

    Trong

    const v8 = require['v8'];
    const totalHeapSize = v8.getHeapStatistics[].total_available_size;
    const totalHeapSizeGb = [totalHeapSize / 1024 / 1024 / 1024].toFixed[2];
    console.log['totalHeapSizeGb: ', totalHeapSizeGb];
    
    9, thẻ
    terminate called after throwing an instance of 'std::bad_alloc'
      what[]:  std::bad_alloc
    Aborted [core dumped]
    
    0 bên trong thêm cái này

    NODE_OPTIONS="--max-old-space-size=4096" node ...
    
    9

    Bây giờ trong

    terminate called after throwing an instance of 'std::bad_alloc'
      what[]:  std::bad_alloc
    Aborted [core dumped]
    
    1 thay vì sử dụng
    terminate called after throwing an instance of 'std::bad_alloc'
      what[]:  std::bad_alloc
    Aborted [core dumped]
    
    2 chỉ cần sử dụng

    #increase to 1gb
    node --max-old-space-size=1024 index.js
    
    #increase to 2gb
    node --max-old-space-size=2048 index.js 
    
    #increase to 3gb
    node --max-old-space-size=3072 index.js
    
    #increase to 4gb
    node --max-old-space-size=4096 index.js
    
    #increase to 5gb
    node --max-old-space-size=5120 index.js
    
    #increase to 6gb
    node --max-old-space-size=6144 index.js
    
    #increase to 7gb
    node --max-old-space-size=7168 index.js
    
    #increase to 8gb 
    node --max-old-space-size=8192 index.js 
    
    
    0

    Nếu bạn muốn sử dụng cấu hình này cho

    terminate called after throwing an instance of 'std::bad_alloc'
      what[]:  std::bad_alloc
    Aborted [core dumped]
    
    3 chỉ cần xóa
    terminate called after throwing an instance of 'std::bad_alloc'
      what[]:  std::bad_alloc
    Aborted [core dumped]
    
    4 khỏi cả 3 nơi

    Đã trả lời ngày 12 tháng 3 năm 2021 lúc 17:07Mar 12, 2021 at 17:07

    R15R15R15

    12K14 Huy hiệu vàng83 Huy hiệu bạc148 Huy hiệu đồng14 gold badges83 silver badges148 bronze badges

    Nếu bất kỳ câu trả lời nào không hoạt động cho bạn, hãy kiểm tra nút đã cài đặt của bạn nếu nó tương thích [tức là 32 bit hoặc 64 bit] với hệ thống của bạn. Thông thường loại lỗi này xảy ra do các phiên bản nút và hệ điều hành không tương thích và thiết bị đầu cuối/hệ thống sẽ không cho bạn biết về điều đó nhưng sẽ giúp bạn thoát khỏi lỗi bộ nhớ.

    Đã trả lời ngày 4 tháng 6 năm 2021 lúc 14:01Jun 4, 2021 at 14:01

    Shoaib iqbalshoaib iqbalShoaib Iqbal

    2.2004 huy hiệu vàng24 Huy hiệu bạc47 Huy hiệu đồng4 gold badges24 silver badges47 bronze badges

    Trong trường hợp của tôi, tôi đã chạy

    terminate called after throwing an instance of 'std::bad_alloc'
      what[]:  std::bad_alloc
    Aborted [core dumped]
    
    5 trên phiên bản trước của nút, sau một ngày nào đó tôi đã nâng cấp phiên bản nút và RAM
    terminate called after throwing an instance of 'std::bad_alloc'
      what[]:  std::bad_alloc
    Aborted [core dumped]
    
    5 cho một vài mô -đun. Sau đó, tôi đã nhận được lỗi này. Để khắc phục sự cố này, tôi đã xóa thư mục node_module khỏi mỗi dự án và chạy lại
    terminate called after throwing an instance of 'std::bad_alloc'
      what[]:  std::bad_alloc
    Aborted [core dumped]
    
    5.

    Hy vọng điều này có thể khắc phục vấn đề.

    Lưu ý: Điều này đã xảy ra trên máy cục bộ của tôi và nó chỉ được sửa trên máy cục bộ.

    Đã trả lời ngày 2 tháng 4 năm 2019 lúc 7:16Apr 2, 2019 at 7:16

    GampeshgampeshGampesh

    3.7862 huy hiệu vàng11 Huy hiệu bạc8 Huy hiệu đồng2 gold badges11 silver badges8 bronze badges

    Nếu bạn có bộ nhớ hoặc RAM giới hạn, thì hãy tìm lệnh sau.

    ng phục vụ-nguồn-map = false

    Nó sẽ có thể khởi chạy ứng dụng. Ví dụ của tôi, nó cần RAM 16GB. Nhưng tôi có thể chạy với RAM 8GB.

    Dharman ♦

    28.5K21 Huy hiệu vàng78 Huy hiệu bạc129 Huy hiệu đồng21 gold badges78 silver badges129 bronze badges

    Đã trả lời ngày 8 tháng 6 năm 2021 lúc 16:18Jun 8, 2021 at 16:18

    Tại sao JavaScript ra khỏi bộ nhớ xảy ra?

    Điều này thường xảy ra trên các dự án lớn hơn trong đó lượng bộ nhớ mặc định được phân bổ bởi nút [1.5GB] là không đủ để hoàn thành lệnh thành công..

    Bộ nhớ heap của JS là gì?

    Heap: Nó được sử dụng để lưu trữ các đối tượng và chức năng trong JavaScript.Động cơ không phân bổ một lượng bộ nhớ cố định.Thay vào đó, nó phân bổ nhiều không gian hơn theo yêu cầu.used to store objects and functions in JavaScript. The engine doesn't allocate a fixed amount of memory. Instead, it allocates more space as required.

    Làm thế nào tăng kích thước heap javascript?

    Sử dụng cờ--Max-Old-Space-Size khi chạy ứng dụng Node.js để tăng đống bộ nhớ có sẵn.Lưu ý rằng cờ cần đến trước khi gọi tệp bằng lệnh nút. js application to increase the available memory heap. Note that the flag needs to come before calling the file with the node command.

    Điều gì xảy ra nếu bộ nhớ heap đầy?

    Khi đống trở nên đầy, rác được thu thập.Trong các đối tượng thu gom rác không còn được sử dụng được xóa, do đó tạo không gian cho các đối tượng mới.garbage is collected. During the garbage collection objects that are no longer used are cleared, thus making space for new objects.

    Bài Viết Liên Quan

    Chủ Đề