V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
jqtmviyu683
V2EX  ›  Node.js

请教下 nodejs 程序的占用

  •  
  •   jqtmviyu683 · 2023-03-24 17:45:54 +08:00 · 1682 次点击
    这是一个创建于 617 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近重拾 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
       2023-03-24 17:56:31 +08:00
    发完就发现自己写了个 bug, 不该用 forEach 的
    jqtmviyu683
        2
    jqtmviyu683  
    OP
       2023-03-24 19:43:18 +08:00
    感觉自己犯蠢了, 写个最简单的 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
    }
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2782 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 09:47 · PVG 17:47 · LAX 01:47 · JFK 04:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.