Je m’appelle Cédric Bozzi, je crée des sites et des applications, et ceci est mon blog dédié à la technologie : vous y trouverez des news, des opinions et des tests, le tout écrit par un Mac-head aux opinions tranchées.
There’s an English version here, mais la majeure partie du contenu est tirée de mon flux Twitter, et donc disponible en une seule langue (qui change au hasard des humeurs).
Ca faisait un moment que j’avais des problèmes avec mon iMac où, après quelques jours, chaque lancement d’application faisait tourner le processeur à 100% pendant trente secondes, avec l’augmentation de température qui va avec et les ventilateurs qui tournent à fond — ce qui ne serait pas si gênant si je n’avais pas une série d’applications AppleScript que je lance régulièrement, ou si je ne devais pas relancer Safari de temps en temps pour récupérer des ressources.
Je pensais jusque-là que les coupables les plus probables étaient soient Firefox 3 soit Mercury Messenger, parce que ça semblait arriver de façon plus reproductible après les avoir lancés deux ou trois fois (je ne m’étendrai pas sur les raisons pour lesquelles Firefox et Mercury sont liés dans une même “tâche” de mon “workflow”), donc j’ai commencé à éviter de lancer l’un, ou l’autre, ou les deux — et aujourd’hui ça a commencé à se reproduire alors que j’étais certain de n’avoir lancé ni l’un ni l’autre depuis mon dernier boot. Je suis retourné faire du ménage dans les dossiers InputManagers, puisque ce sont les premiers suspects quand queqlue chose se passe mal au lancement de toutes les applications, mais il n’y avait toujours que 1Password, et l’enlever ne changeait rien. Alors j’ai commencé à réfléchir à d’autres solutions, et je me suis soudain souvenu d’avoir entendu parler d’un certain programme Unix qu’il y a dans OS X et qui devait servir à regarder à l’intérieur de sa machine, voir tout ce qui se passe, tout ça.
Un peu de Google pour trouver la syntaxe dtrace, et voilà, pour la postérité, l’instruction Terminal qui a donné la réponse :
sudo dtrace -n 'syscall::open*:entry { printf("%s %s", execname, copyinstr(arg0)); }'
Avec ça, dtrace affiche en temps réel toutes les ouvertures de fichier ; j’ai regardé ce qui se passait au moment où le processeur s’emballait, et fini par supprimer le plug-in QuickTime “macam” (qui permet d’utiliser de vieilles webcams USB), ce qui semble avoir réglé le problème. Je ne sais pas trop pourquoi un plug-in QuickTime déciderait de se charger avec chaque application au bout d’un certain seuil d’uptime, ni pourquoi le processus serait accéléré par Mercury et/ou Firefox, donc je ne suis pas sûr à 100% d’avoir vraiment trouvé l’origine de mon problème, mais au minimum j’ai trouvé une instruction très utile, d’où ce post.
2001 01 02 03 04 05 06 07 08 09 10 11 12
2002 01 02 03 04 05 06 07 08 09 10 11 12
2003 01 02 03 04 05 06 07 08 09 10 11 12
2004 01 02 03 04 05 06 07 08 09 10 11 12
2005 01 02 03 04 05 06 07 08 09 10 11 12
2006 01 02 03 04 05 06 07 08 09 10 11 12
2007 01 02 03 04 05 06 07 08 09 10 11 12
2008 01 02 03 04 05 06 07 08 09 10 11 12
2009 01 02 03 04 05 06 07 08 09 10 11 12
2010 01 02 03 04 05 06 07 08 09 10 11 12