IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AppleScript Discussion :

Accélérer l’exécution d'un script [AppleScript]


Sujet :

AppleScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Octobre 2011
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 38
    Par défaut Accélérer l’exécution d'un script
    Bonjour

    J'aurais voulu savoir s'il était possible d'accélérer l’exécution des scripts.
    Par exemple en allouant tant de % de la ram de l'ordinateur ?

  2. #2
    Membre émérite

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Septembre 2010
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Septembre 2010
    Messages : 606
    Par défaut
    Bonsoir,
    Pas à ma connaissance, mais quelques règles restent valables :
    - la déclaration de variable (property) reste de mise car elle contribue à un meilleur adressage interne
    - certaines instructions AS sont très puissantes correctement utilisées et permettent d'économiser de nombreuses instructions
    - à l'inverse certaines sont gourmandes en mémoire et cpu dans certains cas
    - il reste toujours vrai qu'avant de ce lancer dans un code, il faut le penser en fonction du langage

    Enfin, j'ajoute qu'il est parfois utile d'interconnecter des langages, comme AS et shell, voir Python ou PERL
    A titre d'exemple, sur un dossier de quelques milliers de fichiers, je souhaite la liste des noms de fichier. Avec AS, cela peut prendre quelques minutes pour un "get items" alors qu'un "do shell script" avec la commande shell "ls" le fait en une fraction de seconde en récupérant la liste dans un texte (chaque Applescript paragraph te donnera le nom d'un fichier)...

    Donc oui, on peut optimiser,..mais chaque cas est particulier.

    Bon courage !

  3. #3
    Membre averti
    Inscrit en
    Octobre 2011
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 38
    Par défaut
    Merci beaucoup pour ces infos, en effet mon premier ressentie sur la fonction de listage de fichier en applescript via le finder est bien le même comparer à un ls en shell.

    Bref je pense que c'est comme tout langage de programmation tout réside dans optimisation et la propreté du code.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    573
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 573
    Par défaut
    Bonjour,

    Je rebondie sur ce post.
    Dans cet objectif, est il possible de mettre des "points de log" dans le code pour voir le temps de traitement des différents morceaux de codes ?

    Thais

  5. #5
    Membre émérite

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Septembre 2010
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Septembre 2010
    Messages : 606
    Par défaut
    Bonjour Thais,
    Bien sûr, il est possible de faire des logs !
    Ceux-ci peuvent contenir n'importe quel texte, y compris, bien sûr le temps (instruction current date).

    Voici un exemple avec 2 routines possibles, l'une utilisant du shellscript Slog, l'autre en Applescript pur (ASLog)...
    Je crois même me souvenir que nous avions optimisé la seconde avec l'ami FredoMkb !
    Comme la première est en shell, ...elle est plus rapide, mais attention au accents et caractères spéciaux !

    Je précise que la fonction Coup d'Oeil du Finder, appliquée sur le fichier de log, est mise à jour pendant l'exécution du script ! Donc en direct.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    on run
    	ASlog("Hello voici une trace à " & (current date))
    	SLog("Hello voici une trace à " & (current date))
    end run
     
    -- en utilisant le shell
    on SLog(msg)
    	set the my_log to ¬
    		(POSIX path of ((path to desktop) as text) & "mon_journal.txt")
    	try
    		-- Créer si besoin
    		tell me to do shell script "touch " & (quoted form of my_log)
    		-- Ajouter le message en fin de fichier
    		tell me to do shell script "echo " & ¬
    			(quoted form of msg) & ¬
    			" >> " & (quoted form of my_log)
    	end try
    end SLog
     
    -- sans utiliser le shell
    on ASlog(msg)
    	set the my_log to ¬
    		((path to desktop) as text) & "mon_journal.txt"
    	try
    		-- ouvrir le fichier. Finder le crée si besoin
    		open for access file the my_log with write permission
    		-- écrire le message en fin de fichier
    		write (msg & return) to file the my_log starting at eof
    		-- fermer le fichier
    		close access file the my_log
    	on error
    		try
    			close access file the my_log
    		end try
    	end try
    end ASlog
    Cordialement

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    573
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 573
    Par défaut
    Bonjour Philippe,

    Merci pour l'info, c'est nickel.
    Tu sais comment préciser le truc et avoir une précison au niveau milliseconde et pas seulement seconde ?


    Thais

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [2.x] [Symfony2] Planification de l’exécution d'un script PHP
    Par yakuzabj dans le forum Symfony
    Réponses: 8
    Dernier message: 10/05/2012, 15h01
  2. l’exécution d'un script par MySQL
    Par Bb.siham dans le forum Administration
    Réponses: 1
    Dernier message: 31/03/2011, 08h52
  3. [IIS 7] Autoriser l’exécution des scripts
    Par yoyo88 dans le forum IIS
    Réponses: 0
    Dernier message: 17/02/2011, 15h54
  4. [Débutant] Accélérer et optimiser ses scripts PHP
    Par Metallic-84s dans le forum Langage
    Réponses: 6
    Dernier message: 24/03/2006, 12h37
  5. Réponses: 8
    Dernier message: 12/12/2005, 15h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo