Pour tester la rapidité des mes programmes, j'ai vu qu'il existait la commande time sous bash, je l'ais donc utiliser, (tout en me renseignant), et voici ce que j'obtient :
$ time HW.py
HW.py : commande introuvable
real 0m3.400s
user 0m0.141s
sys 0m1.172s
$ time Debug.nsx
Debug.nsx : commande introuvable
real 0m0.927s
user 0m0.094s
sys 0m0.813s
HW.py est donc un petit programme en python et Debug.nsx un programme en Arlia
Je pense que tout ce passe bien, mais néanmoins, j'ai du mal à comprendre ce que représentent les valeurs :
Pour HW.py :
real 0m3.400s
Pour Debug.nsx :
real 0m0.927
Logiquement le plus rapide devrait être le programme en python, mais il affiche (je pense) de plus grande valeurs que l'autre programme, donc si vous sauriez m'indiquer si je me trompe ou pas dans ma "représentation des valeurs". C'est plus ou moins important pour ce que je dois faire.
Merci et bien à vous
Le meilleur moyen de prédire l'avenir, c'est de l'inventer | N'oubliez pas [résolu] et +1 | Excusez mon ôrtograffe, j'essaie de l'améliorer...
Je suis perplexe face à tes résultats, car tous les deux annoncent commande introuvable avant tout. Donc as-tu réellement le temps d'exécution des scripts ici ?
Sinon, man time et tu auras plus d'indication sur les différentes valeurs que tu obtiens. Mais oui, c'est «real» que tu veux ici.
En fait c'est juste parce que ton script n'est pas present dans un chemin du PATH.
Soit tu export le chemin de tes scripts dans ta variable $PATH (ou tu deplaces ton script), ou tu lui donnes le chemin dans ta commande.
Exemple:
$ time monscript.py
bash: monscript.py : commande introuvable
real 0m0,002s
user 0m0,002s
sys 0m0,000s
##################
$ time ~/monscript.py
real 0m0,006s
user 0m0,004s
sys 0m0,000s
- Edité par JoffreyTango 26 juillet 2017 à 14:09:22
Tu veux dire quoi par "As tu réellement le temps d'execution de tes scripts ?", cela voudrais dire que mes scripts ne s’exécutent pas ?!
@JoffreyTango:
J'ouvre le terminal depuis le bureau, ou s'y trouve mes deux Scripts, donc normalement, je peux simplifier la commande en ne mettant juste que le nom des fichiers, puisqu'ils son dans le même dossier où j'ouvre le terminal. Et si je fais ça :
$ time ~/HW.py
Il me donne ça :
bash: /home/User/HW.py: Aucun fichier ou dossier de ce type
real 0m0.034s
user 0m0.000s
sys 0m0.016s
Peux être est-ce par ce que je suis sous Windows, et que j'utilise juste le terminal...
Aussi, désoler si il y a certaines choses qui pourrait vous sauter au yeux xD mais je n'utilise bash principalement que pour compiler.
Si vous voulez, cela pourra peut être aider, j'essaye de "calculer" lequel des deux Scripts entre celui en Python et en Arlia, lequel est le plus rapide.
Le meilleur moyen de prédire l'avenir, c'est de l'inventer | N'oubliez pas [résolu] et +1 | Excusez mon ôrtograffe, j'essaie de l'améliorer...
@vanaur Oui, ton script ne s'est pas exécuté. Comme l'a expliqué JoffreyTango, time attend une commande.
Tu utilises Bash on Ubuntu on Windows? J'avoue que je ne sais pas trop comment ça marche à ce niveau pour les exécutable etc...
En fait, la solution proposée par JoffreyTango, marche si bash peut reconnaitre ton script comme un exécutable utilisant python. En gros, il faut que ton script soit un exécutable et qu'il y ait au début de ce dernier ceci:
#!/usr/bin/env python
Sinon tu peux juste faire:
time pyhton /chemin/vers/monscript.py
chemin relatif ou absolu.
Je précise que tu peux trouver «Windows» sur Bash on Ubuntu On Windows dans /mnt/. Donc exemple pour calculer le temps d’exécution d'un script en pyhton se trouvant sur ton Bureau Windows:
time /mnt/c/Users/Utilisateur/Desktop/./pyhton.py
Mon script étant:
#!/usr/bin/env python
import time
time.sleep(5)
print "Hello World!"
La première ligne indiquant à bash qu'il faut utiliser python.
Ok merci beaucoup, je vais essayer de me dérouiller avec ça, mais time ne fonctionne que pour exécuter des script python ?
Car comme je l'ais dis, mon bute est en fait de comparer 2 type de programme un en Python, et un en un autre langage qui ne fait pas partit de Linux, pour voir lequel est le plus rapide lors de son execution.
Le meilleur moyen de prédire l'avenir, c'est de l'inventer | N'oubliez pas [résolu] et +1 | Excusez mon ôrtograffe, j'essaie de l'améliorer...
non, time mesure le temps d'exécution d'une commande (et un peu plus mais bon, c'est pas ce qui nous intéresse ici). Or ici tes script ne sont pas des commandes.
Donc tu peux faire:
time echo "Hello World!"
time ls
time find /home -name .bashrc
Le truc, c'est que tu es sur bash, donc quand tu lui donnes un script, lui le prend comme un script bash par défault. D'où l'utilisation de #!/usr/bien/env python, ou juste de la commande python.
Pour Arlia, je ne connais pô... désolé.
Si tu peux compiler ton script en Arlia sur linux, alors tu pourras utiliser time.
./HW.py: ligne 1: erreur de syntaxe près du symbole inattendu « "Hello World" »
./HW.py: ligne 1: `print("Hello World")'
real 0m0.068s
user 0m0.000s
sys 0m0.016s
Pour l'autre fichier :
./Debug.nsx: ligne 1: caractère de fin de fichier (EOF) prématuré lors de la recherche du « ' » correspondant
./Debug.nsx: ligne 9: erreur de syntaxe : fin de fichier prématurée
real 0m0.047s
user 0m0.000s
sys 0m0.031s
Désoler si c'est un peux "brutal" de donné tout comme ça;
Donc, là je pense que le Script est bien lançer, mais il m'affiche une erreur de syntaxe pour le 1er fichier, alors qu'il n'y en a pas, et pour le second, bhas je sais pas trop :/
@ShaWaTK:
Merci, je vois en effet que bash n'affiche plus d'erreur quand je fais "time ls"
il me donne ça :
Debug.nsx HW.py
real 0m0.042s
user 0m0.000s
sys 0m0.016s
Et pour Arlia, il n'est pas compiler sous Linux, en réalité, c'est mon propre langage Script, et je voudrais tester son efficacité par rapport à sa rapidité.
Merci encore pour votre aide
- Edité par vanaur 26 juillet 2017 à 17:56:01
Le meilleur moyen de prédire l'avenir, c'est de l'inventer | N'oubliez pas [résolu] et +1 | Excusez mon ôrtograffe, j'essaie de l'améliorer...
Faut que tu comprennes que bash ne sait pas faire la différence au niveau des extensions de fichier. Donc il n'a aucun moyen de deviner que c'est du python pour ton script python par exemple. Il faut lui préciser à un moment donné comme indiqué dans les posts précédents.
Debug.nsx HW.py
real 0m0.045s
user 0m0.000s
sys 0m0.016s
Je vais me renseigner sur cette fonction, et vous dire le résultat de mes recherches par rapport à mes besoins.
{EDIT} (J'aime pas faire des EDIT dans mes messages, ca ne notifie pas) :
Finalement j'ai trouvé, et c'était tout con, mais vous m'avez mis sur la vois :
$ time ls Debug.nsx
Debug.nsx
real 0m0.048s
user 0m0.000s
sys 0m0.063s
#---------------------
$ time HW.py
HW.py
real 0m0.051s
user 0m0.000s
sys 0m0.047s
Donc, après plusieurs essais, j'en ais conclu que c'était Arlia le plus rapide, mais bon, à cette taille de fichier (20 octets) ca ne veux pas dire grand chose xD
Merci encore
- Edité par vanaur 26 juillet 2017 à 18:11:09
Le meilleur moyen de prédire l'avenir, c'est de l'inventer | N'oubliez pas [résolu] et +1 | Excusez mon ôrtograffe, j'essaie de l'améliorer...
Je viens de tester avec 3 executables affichant "hello the world ", en "cpp", "python3" et "bash" ça à l'aire cohérent. Mais il faudrait tester sur des plus gros programmes. À voir..
$ time ./main.o && time ./main.py && time ./main.sh
Hello the world
real 0m0,004s
user 0m0,000s
sys 0m0,003s
Hello the world
real 0m0,062s
user 0m0,056s
sys 0m0,003s
hello the world
real 0m0,009s
user 0m0,005s
sys 0m0,004s
- Edité par JoffreyTango 26 juillet 2017 à 18:10:02
J'ai fais un EDIT au dernier message, donc voilà, c'est réglé mais c'est vrai que pour de simple programme Hello World, ca n'indique pas grand chose xD
Le meilleur moyen de prédire l'avenir, c'est de l'inventer | N'oubliez pas [résolu] et +1 | Excusez mon ôrtograffe, j'essaie de l'améliorer...
Mais donc, si je suis l'explication, je ne sais pas exécuter mon Debug.nsx, vu qu'il n'est pas disponible sous Ubuntu. Je pense que pour faire des calcules plus performant, je vais créer ma propre commande time en C xD
Merci encore à vous !
Le meilleur moyen de prédire l'avenir, c'est de l'inventer | N'oubliez pas [résolu] et +1 | Excusez mon ôrtograffe, j'essaie de l'améliorer...
Terminal : BASH Ubuntu - Fonction time
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Le meilleur moyen de prédire l'avenir, c'est de l'inventer | N'oubliez pas [résolu] et +1 | Excusez mon ôrtograffe, j'essaie de l'améliorer...
Le meilleur moyen de prédire l'avenir, c'est de l'inventer | N'oubliez pas [résolu] et +1 | Excusez mon ôrtograffe, j'essaie de l'améliorer...
Le meilleur moyen de prédire l'avenir, c'est de l'inventer | N'oubliez pas [résolu] et +1 | Excusez mon ôrtograffe, j'essaie de l'améliorer...
Le meilleur moyen de prédire l'avenir, c'est de l'inventer | N'oubliez pas [résolu] et +1 | Excusez mon ôrtograffe, j'essaie de l'améliorer...
Le meilleur moyen de prédire l'avenir, c'est de l'inventer | N'oubliez pas [résolu] et +1 | Excusez mon ôrtograffe, j'essaie de l'améliorer...
Le meilleur moyen de prédire l'avenir, c'est de l'inventer | N'oubliez pas [résolu] et +1 | Excusez mon ôrtograffe, j'essaie de l'améliorer...
Le meilleur moyen de prédire l'avenir, c'est de l'inventer | N'oubliez pas [résolu] et +1 | Excusez mon ôrtograffe, j'essaie de l'améliorer...
Le meilleur moyen de prédire l'avenir, c'est de l'inventer | N'oubliez pas [résolu] et +1 | Excusez mon ôrtograffe, j'essaie de l'améliorer...