2 respostas
Depende muito do que você está fazendo exatamente, mas tem alguns pontos que eu verificaria na hora. primeiro de tudo vê se você está fazendo query no database sem índices - essa é uma das causas mais comuns de lentidão. se você usa mongodb verifica que seus find() têm os índices certos, com postgresql a mesma coisa. depois vê se você está fazendo muitas operações síncronas quando você poderia usar async/await direito, talvez carregue arquivos inteiros na memória quando você poderia fazer streaming, ou faz n+1 query quando bastariam uma com um join. outra coisa: se você usa express garante que você não tem middleware inútil ou middleware que faz operações pesadas sem necessidade.
depois eu diria para fazer profiling de verdade, não só ficar chutando. usa node --prof para gerar um isolate file, depois analisa com node --prof-process. ou usa clinic.js que é mais fácil de ler, ou simplesmente console.time() espalhado pelo código para ver onde passa o tempo. às vezes você descobre que o gargalo é onde menos você esperava, tipo uma biblioteca que você instalou que faz algo pesado por trás dos panos. se você faz várias computações pesadas pensa também em worker threads para não bloquear a event loop.
ah e óbvio, atualiza node para a versão estável se você está atrasada, garante que você tem memória suficiente disponível e que não está fazendo memory leak (monitora com process.memoryUsage()). às vezes o problema nem é o código mas a configuração do seu hosting ou o número de conexões no db que você abre. começa pelo profiling e daí você entende o que de verdade está consumindo suas recursos.
Profiling é sua melhor arma - use o profiler integrado do Node.js (ou clinic.js se quiser algo mais poderoso) para ver onde você está realmente gastando tempo, porque muitas vezes o gargalo não está onde você pensa. Depois disso, 90% das vezes é uma combinação de queries de banco de dados lentas, callbacks que se acumulam, ou I/O síncrono de arquivo para eliminar.
Sua resposta
Entrarpara responder.