From 4176e70509a469758e269df06b8c5781b44a7517 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D1=81=D0=B5=D0=B2=D0=BE=D0=BB=D0=BE=D0=B4?= Date: Sun, 10 Mar 2024 15:28:59 +0300 Subject: [PATCH] Convert stats str to JSON object --- api/src/job.js | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/api/src/job.js b/api/src/job.js index e038a75..cc2d236 100644 --- a/api/src/job.js +++ b/api/src/job.js @@ -156,7 +156,9 @@ class Job { const time_format = [ '-f', - 'real %es\\nuser %Us\\nsys %Ss\\nmem %MKb', + // https://www.man7.org/linux/man-pages/man1/time.1.html#top_of_page + // elapsed user system memory + '%es %Us %Ss %MKb', ] if (memory_limit >= 0) { @@ -275,10 +277,16 @@ class Job { this.close_cleanup(); if (stderr.length > 0) { - var stats = stderr.trim().split('\n').slice(-4).join('\n'); + var stats = stderr.trim().split('\n').slice(-1).join('\n').split(' '); - stderr = stderr.trim().split('\n').slice(0, -4).join('\n'); - output = output.trim().split('\n').slice(0, -4).join('\n'); + stderr = stderr.trim().split('\n').slice(0, -1).join('\n'); + output = output.trim().split('\n').slice(0, -1).join('\n'); + + stats = { + 'elapsed_time': stats[0], + 'cpu_time': stats[1] + ' / ' + stats[2], + 'max_mem': stats[3], + } } var end_time = new Date().getTime(); @@ -293,10 +301,16 @@ class Job { this.close_cleanup(); if (stderr.length > 0) { - var stats = stderr.trim().split('\n').slice(-4).join('\n'); + var stats = stderr.trim().split('\n').slice(-1).join('\n').split(' '); - stderr = stderr.trim().split('\n').slice(0, -4).join('\n'); - output = output.trim().split('\n').slice(0, -4).join('\n'); + stderr = stderr.trim().split('\n').slice(0, -1).join('\n'); + output = output.trim().split('\n').slice(0, -1).join('\n'); + + stats = { + 'elapsed_time': stats[0], + 'cpu_time': stats[1] + ' / ' + stats[2], + 'max_mem': stats[3], + } } var end_time = new Date().getTime();