Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

232
Visualizações
/usr/bin/time siempre da 0 para el tamaño promedio del conjunto residente

Estoy tratando de usar /usr/bin/time para recopilar el tamaño promedio de los programas residentes. Probé este comando con varios programas, pero el tamaño promedio del conjunto residente siempre es cero. Por ejemplo:

/usr/bin/resultado de tiempo

Mi sistema operativo es ubuntu 10.04.

¿Podría decirme cuál es la razón o cómo puedo solucionarlo? ¡Muchos gracias!

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Mire, /usr/bin/time no calcula estos datos por sí mismo. Utiliza wait4 para obtener estos datos de Linux. Esta es una descripción de wait4:

 >man wait4 pid_t wait4(pid_t pid, int *status, int options, struct rusage *rusage);

El problema es que no se mantienen todos los campos en struct ruusage :

 Not all fields are completed; unmaintained fields are set to zero by the kernel. (The unmaintained fields are provided for compatibility with other systems, and because they may one day be supported on Linux.) The fields are interpreted as follows:

Mientras maxrss se mantiene, otros campos sobre rss no se mantienen. Entonces simplemente devuelve 0 y /usr/bin/time también imprime 0.

Además, si echa un vistazo a los archivos fuente de GNU time, verá este código:

 /* FMT is the format string, interpreted as described above. */ static void summarize (fp, fmt, command, resp) FILE *fp; const char *fmt; const char **command; RESUSE *resp; { while (*fmt) { switch (*fmt) { case 'M': /* Maximum resident set size. */ fprintf (fp, "%lu", ptok ((UL) resp->ru.ru_maxrss)); break; case 't': /* Average resident set size. */ fprintf (fp, "%lu", MSEC_TO_TICKS (v) == 0 ? 0 : ptok ((UL) resp->ru.ru_idrss) / MSEC_TO_TICKS (v));

Dado que Linux devuelve ru_idrss como 0, el tamaño promedio del conjunto residente es 0.

Enlaces útiles:

  • http://man7.org/linux/man-pages/man2/getrusage.2.html
  • ¿Se rompe getrusage en Linux (2.6.30)?
  • http://ftp.gnu.org/gnu/tiempo/
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda