Проблемы с разрывом строки со временем и make - PullRequest
0 голосов
/ 23 марта 2011

Я занимаюсь разработкой программного обеспечения на C. Одна из целей в моем make-файле запускает тест, и я использую time для записи времени выполнения и valgrind для проверки утечек памяти. Когда я вызываю один из небольших тестов непосредственно из командной строки, я получаю это.

$ time valgrind bin/test data/gff3/example1.gff3 data/gff3/example2.gff3
==27268== Memcheck, a memory error detector
==27268== Copyright (C) 2002-2010, and GNU GPL'd, by Julian Seward et al.
==27268== Using Valgrind-3.6.0.SVN-Debian and LibVEX; rerun with -h for copyright info
==27268== Command: bin/test data/gff3/example1.gff3 data/gff3/example2.gff3
==27268== 
==27268== 
==27268== HEAP SUMMARY:
==27268==     in use at exit: 0 bytes in 0 blocks
==27268==   total heap usage: 4,001 allocs, 4,001 frees, 152,648 bytes allocated
==27268== 
==27268== All heap blocks were freed -- no leaks are possible
==27268== 
==27268== For counts of detected and suppressed errors, rerun with: -v
==27268== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 4 from 4)

real    0m1.460s
user    0m1.330s
sys 0m0.110s

Однако, когда я запускаю тест из моего make-файла (используя ту же самую команду), я получаю это.

$ make mem
time valgrind bin/test data/gff3/example1.gff3 data/gff3/example2.gff3
==27265== Memcheck, a memory error detector
==27265== Copyright (C) 2002-2010, and GNU GPL'd, by Julian Seward et al.
==27265== Using Valgrind-3.6.0.SVN-Debian and LibVEX; rerun with -h for copyright info
==27265== Command: bin/test data/gff3/example1.gff3 data/gff3/example2.gff3
==27265== 
==27265== 
==27265== HEAP SUMMARY:
==27265==     in use at exit: 0 bytes in 0 blocks
==27265==   total heap usage: 4,001 allocs, 4,001 frees, 152,648 bytes allocated
==27265== 
==27265== All heap blocks were freed -- no leaks are possible
==27265== 
==27265== For counts of detected and suppressed errors, rerun with: -v
==27265== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 4 from 4)
1.32user 0.10system 0:01.55elapsed 91%CPU (0avgtext+0avgdata 214752maxresident)k
24inputs+8outputs (1major+18568minor)pagefaults 0swaps

Кажется, что есть проблемы с разрывом строки в выводе программы time внизу, а также в некоторых дополнительных выводах, которые я не видел при вызове непосредственно из командной строки. Я видел это раньше, когда пытался рассчитать время работы с nohup.

Почему это происходит и что я могу сделать, чтобы получить последовательные результаты?

1 Ответ

4 голосов
/ 23 марта 2011

время - встроенный bash. Вывод вашего Makefile выглядит как вывод / usr / bin / time. Самый простой способ получить согласованные результаты - запустить в командной строке «/ usr / bin / time» вместо «time».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...