Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπέρα.

Θέλω να εμφανίσω στο τερματικό τους χρόνους του προγράμματος με την εντολή $time ./a.out στη μορφή:

real	0m0,207s
user	0m0,199s
sys 	0m0,000s

αλλά εκτελώντας την μέσα από Makefile ως:

run:
	time ./a.out

παίρνω κάτι τέτοιο:

0.20user 0.00system 0:00.21elapsed 95%CPU (0avgtext+0avgdata 1444maxresident)k0inputs+0outputs (0major+69minor)pagefaults 0swaps

έχω δοκιμάσει διάφορα flags χωρίς επιτυχία και έχω καταφέρει να το κάνω να μοιάζει με το format flag:

run:
	time -f "\nreal  %E \nuser  %Us \nsys  %Ss" ./a.out
real  0:00.21
user  0.20s
sys   0.00s

γνωρίζει κανείς γιατί διαφέρει το να τρέχω "χεράτα" την εντολή με το να τρέχω την ίδια εντολή μέσα από makefile???

Ευχαριστώ.

Δημοσ.
2 ώρες πριν, stergem είπε

Καλησπέρα.

Θέλω να εμφανίσω στο τερματικό τους χρόνους του προγράμματος με την εντολή $time ./a.out στη μορφή:


real	0m0,207s
user	0m0,199s
sys 	0m0,000s

αλλά εκτελώντας την μέσα από Makefile ως:


run:
	time ./a.out

παίρνω κάτι τέτοιο:


0.20user 0.00system 0:00.21elapsed 95%CPU (0avgtext+0avgdata 1444maxresident)k0inputs+0outputs (0major+69minor)pagefaults 0swaps

έχω δοκιμάσει διάφορα flags χωρίς επιτυχία και έχω καταφέρει να το κάνω να μοιάζει με το format flag:


run:
	time -f "\nreal  %E \nuser  %Us \nsys  %Ss" ./a.out

real  0:00.21
user  0.20s
sys   0.00s

γνωρίζει κανείς γιατί διαφέρει το να τρέχω "χεράτα" την εντολή με το να τρέχω την ίδια εντολή μέσα από makefile???

Ευχαριστώ.

Υπάρχουν ένα κάρο εξωτερικές εντολές που υλοποιούνται και εσωτερικά από τα διάφορα κελύφη για λόγους ταχύτητας. Όταν λοιπόν τρέχεις "χεράτα" την time αυτό που τρέχεις είναι η εσωτερική υλοποίηση του bash ενώ το make διαβάζοντας το makefile σου τρέχει την εξωτερική εντολή time για αυτό και είναι διαφορετική η έξοδος.

Δοκίμασε στο κέλυφος να τρέξεις "/usr/bin/time ./a.out" (το path θα αναγκάσει το κέλυφος να τρέξει την εξωτερική εντολή) και θα δεις ότι το αποτέλεσμα θα είναι ίδιο.

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...