Estoy creando software de concurso de programación. Nuestro sistema de evaluación recibe un programa de usuario y se evalúa compilándolo y ejecutándolo a través de un fork() y un exec(). El proceso principal espera a que el hijo (proceso de envío) salga y luego lo limpia.Estadísticas del proceso de medición en Linux
Para dar información útil acerca de la ejecución del programa, quiero medir el tiempo de CPU y la memoria pico utilizados por el programa. ¿El kernel de Linux realiza un seguimiento de estos valores? ¿Hay alguna otra forma de obtener esta información?
Tenga cuidado al hacer esto, un usuario deshonesto podría poner una desagradable sorpresa en su programa. –
Restringimos el tiempo máximo de CPU, los archivos abiertos, etc., utilizando el strigital syscall, por lo que no creo que el usuario pueda lanzar sorpresas desagradables :) – donatello