stergem Δημοσ. 18 Μαρτίου 2018 Δημοσ. 18 Μαρτίου 2018 Καλησπέρα. Θέλω να εμφανίσω στο τερματικό τους χρόνους του προγράμματος με την εντολή $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??? Ευχαριστώ.
imitheos Δημοσ. 18 Μαρτίου 2018 Δημοσ. 18 Μαρτίου 2018 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 θα αναγκάσει το κέλυφος να τρέξει την εξωτερική εντολή) και θα δεις ότι το αποτέλεσμα θα είναι ίδιο.
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα