V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
jqtmviyu683
V2EX  ›  Node.js

请教下 nodejs 程序的占用

  •  
  •   jqtmviyu683 · Mar 24, 2023 · 2557 views
    This topic created in 1133 days ago, the information mentioned may be changed or developed.

    最近重拾 nodejs, 照抄了个简单的签到程序, 挂在服务器上用, 使用 pm2 启动, 但发现为啥内存占用那么高 就这和 hello word 一样简单的代码, 显示内存占用 63.6mb, 到底是我写的问题, 还是什么原因. 看了眼 docker 里跑的其他几个签到服务, 大多在十几 M 左右, 用 chatgpt 把这段代码转下, 同样用 pm2 启动, 也是占用非常少.

    const schedule = require('node-schedule')
    const axios = require('axios')
    const profiles = require('./config')
    
    const getNowTime = () => {
      return new Date()['toLocaleDateString']()
    }
    
    const request = () => {
      profiles.forEach(async item => {
        const {url, headers} = item
        console.log(`\n\n------${getNowTime()} - ${url}:开始签到------\n`)
    
        const res = await axios({
          url,
          method: 'post',
          headers,
        })
    
        if (res && res.data) {
          console.log(`------ ${getNowTime()} 签到成功 ------\n`)
          console.log(JSON.stringify(res.data))
        } else {
          console.log(`------ ${getNowTime()} 签到失败 ------\n`)
          console.log(res)
        }
      })
    }
    
    const checkin = () => {
      schedule.scheduleJob('0 0 7 * * *', () => {
        setTimeout(() => {
          request()
        }, Math.random() * 10 * 60 * 1000)
      })
    }
    
    console.log(`开始执行任务-${getNowTime()}`)
    checkin()
    
    jqtmviyu683
        1
    jqtmviyu683  
    OP
       Mar 24, 2023
    发完就发现自己写了个 bug, 不该用 forEach 的
    jqtmviyu683
        2
    jqtmviyu683  
    OP
       Mar 24, 2023
    感觉自己犯蠢了, 写个最简单的 setInterval + console.log()不就可以验证了吗?
    51.9mb

    v8.getHeapStatistics() 打印

    {
    total_heap_size: 7430144,
    total_heap_size_executable: 524288,
    total_physical_size: 6549504,
    total_available_size: 4339934392,
    used_heap_size: 4521952,
    heap_size_limit: 4345298944,
    malloced_memory: 139368,
    peak_malloced_memory: 246160,
    does_zap_garbage: 0,
    number_of_native_contexts: 1,
    number_of_detached_contexts: 0,
    total_global_handles_size: 8192,
    used_global_handles_size: 2368,
    external_memory: 408283
    }
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2643 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 03:15 · PVG 11:15 · LAX 20:15 · JFK 23:15
    ♥ Do have faith in what you're doing.