[AppleScript] info for sur /Applications et temps d'exec

Le
unbewusst.sein
bon, je ne vois pas pourquoi mais quand je fais un info for sur
/Applications ça met environ une minute alors que sur
/Applications/Utilities ça met moins d'une seconde.

une idée du pourquoi ?

et aussi ça met approximativement le même temps qu'on ramène tout ou un
seul champ ?
scripts de test :

set t_start to current date
set i to displayed name of (info for (POSIX file
"/Applications/Utilities") as alias)
set t_stop to current date
{t_start, i, t_stop}
(*
{
date "mardi 1 juin 2010 10:39:43",
"Utilitaires",
date "mardi 1 juin 2010 10:39:44"
}
*)


set t_start to current date
set i to displayed name of (info for (POSIX file "/Applications") as
alias)
set t_stop to current date
{t_start, i, t_stop}
(*
{
date "mardi 1 juin 2010 10:41:04",
"Applications",
date "mardi 1 juin 2010 10:42:06"
}
*)


--
« France soir est un journal à grand tirage,
il est donc excellent pour allumer la cheminée. »
(Miguel de Cervantès)
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Patrick Stadelmann
Le #22197421
In article (Une Bévue) wrote:

bon, je ne vois pas pourquoi mais quand je fais un info for sur
/Applications ça met environ une minute alors que sur
/Applications/Utilities ça met moins d'une seconde.

une idée du pourquoi ?



Lire le dictionnaire ! Par défaut, le champ "size" est "true" et donc la
taille totale du dossier sera calculée, ce qui explique la différence.
Essaye de passer "false" est ça devrait être instantané pour les deux
cas.

et aussi ça met approximativement le même temps qu'on ramène tout ou un
seul champ ?



A part pour la taille totale, la commande renvoie toujours une structure
"file information" complète. De toute façon, la commande "info for" est
obsolète comme indiqué dans le dictionnaire. La nouvelle variante permet
à choix d'obtenir tous les champs (en demandant "properties of") ou un
champ en particulier.

Patrick
--
Patrick Stadelmann
Philippe Di Valentin
Le #22197541
Une Bévue a écrit :

bon, je ne vois pas pourquoi mais quand je fais un info for sur
/Applications ça met environ une minute alors que sur
/Applications/Utilities ça met moins d'une seconde.



__________________

« France soir est un journal à grand tirage,
il est donc excellent pour allumer la cheminée. »
(Miguel de Cervantès)

France soir est un très vieux journal:-))))))))) car Cervantès
vivait au XVIème siècle!!!!!
unbewusst.sein
Le #22197671
Patrick Stadelmann
Lire le dictionnaire ! Par défaut, le champ "size" est "true" et donc la
taille totale du dossier sera calculée, ce qui explique la différence.
Essaye de passer "false" est ça devrait être instantané pour les deux
cas.



ok, merci.

> et aussi ça met approximativement le même temps qu'on ramène tout ou un
> seul champ ?

A part pour la taille totale, la commande renvoie toujours une structure
"file information" complète. De toute façon, la commande "info for" est
obsolète comme indiqué dans le dictionnaire. La nouvelle variante permet
à choix d'obtenir tous les champs (en demandant "properties of") ou un
champ en particulier.



ah oui, je lis :
This command is deprecated; use 'tell application "System Events" to get
the properties of …'.

bon, je vais apprendre à lire...
--
« France soir est un journal à grand tirage,
il est donc excellent pour allumer la cheminée. »
(Miguel de Cervantès)
unbewusst.sein
Le #22197661
Philippe Di Valentin

France soir est un très vieux journal:-))))))))) car Cervantès
vivait au XVIème siècle!!!!!



euh yen a ptet plusieurs, j'avoue ne pas avoi vérifié l'autenticité de
ces boutades...
--
« France soir est un journal à grand tirage,
il est donc excellent pour allumer la cheminée. »
(Miguel de Cervantès)
unbewusst.sein
Le #22197861
Patrick Stadelmann
Par défaut, le champ "size" est "true" et donc la
taille totale du dossier sera calculée, ce qui explique la différence.
Essaye de passer "false" est ça devrait être instantané pour les deux
cas.



ok, mais la différence entre /Applications (131 éléments)

et /Applications/Utilities (64 éléments)

ne justifie pas le facteur 60 entre les deux, peut-être est une info
cachée ? (ie quand on a lu le size de /Applications qui contient
Utilities c'est "immédiat" pour Utilities) ?
--
« France soir est un journal à grand tirage,
il est donc excellent pour allumer la cheminée. »
(Miguel de Cervantès)
Patrick Stadelmann
Le #22198031
In article (Une Bévue) wrote:

Patrick Stadelmann
> Par défaut, le champ "size" est "true" et donc la
> taille totale du dossier sera calculée, ce qui explique la différence.
> Essaye de passer "false" est ça devrait être instantané pour les deux
> cas.

ok, mais la différence entre /Applications (131 éléments)

et /Applications/Utilities (64 éléments)



Au total chez moi c'est selon les infos du Finder

/Applications : 6419 éléments, 19 GB
/Applications/Utilities/ : 77 éléments, 600 MB

ne justifie pas le facteur 60 entre les deux, peut-être est une info
cachée ? (ie quand on a lu le size de /Applications qui contient
Utilities c'est "immédiat" pour Utilities) ?



Oui, c'est sans doute mis en cache quelque part.

Patrick
--
Patrick Stadelmann
unbewusst.sein
Le #22198321
Patrick Stadelmann
Oui, c'est sans doute mis en cache quelque part.



pas pour longtemps apparemment...

j'ai fait la manip inverse :
lire /Applications/Utilities
puis /Applications

ça met nettement + de temps pour "/Applications/Utilities" appellé en
1ier qu'appellé en second, pas mésuré.

bon ya quand même pas mal de différences entre info for et properties of
:

# --- dans properties_of et pas dans info_for
----------------------------
# -> container (Symbol) => app("/System/Library/CoreServices/System
Events.app").folders["HD:Applications:"] (Appscript::Reference)
# -> volume (Symbol) => HD (String)
# -> physical_size (Symbol) => missing_value (Symbol)
# -> URL (Symbol) => file://localhost/Applications/WebKit.app/ (String)
# -> id_ (Symbol) => WebKit.app,-100,10941504 (String)
# -> creator_type (Symbol) => wbkt (String)
# -> version (Symbol) => r60376, Copyright 2005-2009 Apple Inc. (String)
# -> POSIX_path (Symbol) => /Applications/WebKit.app (String)
# -> class_ (Symbol) => alias (Symbol)
# -> stationery (Symbol) => false (FalseClass)
# -> product_version (Symbol) => (String)
# -> hdiff.size = 11


# --- dans info_for et pas dans properties_of
----------------------------
# -> folder (Symbol) => true (TrueClass)
# -> alias (Symbol) => false (FalseClass)
# -> extension_hidden (Symbol) => true (TrueClass)
# -> short_name (Symbol) => WebKit (String)
# -> default_application (Symbol) => /Applications/WebKit.app
(MacTypes::Alias)
# -> long_version (Symbol) => r60376, Copyright 2005-2009 Apple Inc.
(String)
# -> bundle_identifier (Symbol) => org.webkit.nightly.WebKit (String)
# -> file_creator (Symbol) => wbkt (String)
# -> hdiff2.size = 8


ce qui me gène le plus est qu'il n'y a pas les booléens "alias" et
"folder".
il n'y a pas non + bundle_identifier ce qui évite d'aller chercher ça
dans la plist.
--
« France soir est un journal à grand tirage,
il est donc excellent pour allumer la cheminée. »
(Miguel de Cervantès)
Patrick Stadelmann
Le #22198461
In article (Une Bévue) wrote:

Patrick Stadelmann
> Oui, c'est sans doute mis en cache quelque part.

pas pour longtemps apparemment...

j'ai fait la manip inverse :
lire /Applications/Utilities
puis /Applications

ça met nettement + de temps pour "/Applications/Utilities" appellé en
1ier qu'appellé en second, pas mésuré.



Ici ça met le même temps pour les deux, mais la taille n'est pas
renvoyée. C'est pas pour rien que c'est obsolète AMHA...

ce qui me gène le plus est qu'il n'y a pas les booléens "alias" et
"folder".



Tu as le type via le champ "Kind"

il n'y a pas non + bundle_identifier ce qui évite d'aller chercher ça
dans la plist.



Ca commence à sortir de ce que AS est sensé faire, il faut passer à
AppleScriptObjC là...

Patrick
--
Patrick Stadelmann
unbewusst.sein
Le #22198881
Patrick Stadelmann
> ça met nettement + de temps pour "/Applications/Utilities" appellé en
> 1ier qu'appellé en second, pas mésuré.

Ici ça met le même temps pour les deux, mais la taille n'est pas
renvoyée. C'est pas pour rien que c'est obsolète AMHA...




oui, on peut deviner que certains cherchent à faire le ménage,
prudemment, dans AS qui n'est pas tout jeune...


> ce qui me gène le plus est qu'il n'y a pas les booléens "alias" et
> "folder".

Tu as le type via le champ "Kind"



oui, je préférais la version boolean, yapuka...


> il n'y a pas non + bundle_identifier ce qui évite d'aller chercher ça
> dans la plist.

Ca commence à sortir de ce que AS est sensé faire, il faut passer à
AppleScriptObjC là...


connais pas.

mais bon c'est "tout fait" en ruby :
h = Plist::parse_xml("#{info_plist}")

mais c'est un peu le boxon une Info.plist, suivant le créateur...

--
« France soir est un journal à grand tirage,
il est donc excellent pour allumer la cheminée. »
(Miguel de Cervantès)
Patrick Stadelmann
Le #22199111
In article (Une Bévue) wrote:

oui, on peut deviner que certains cherchent à faire le ménage,
prudemment, dans AS qui n'est pas tout jeune...



Surtout que le mécanisme des "scripting additions" permet un peu trop
facilement d'injecter du code dans les applications, et que c'est pas
top niveau stabilité et sécurité du système. A terme, elles devraient
donc disparaître et être remplacées par de vraies applications sans
interface, comme System Events.

> Ca commence à sortir de ce que AS est sensé faire, il faut passer à
> AppleScriptObjC là...
connais pas.



C'est le successeur de AppleScript Studio. Ca permet de programmer en AS
tout en ayant accès aux frameworks Cocoa.

Patrick
--
Patrick Stadelmann
Publicité
Poster une réponse
Anonyme