La semaine dernière, j'ai remarqué que mon ordinateur avait sérieusement ralenti. Mes tâches habituelles semblent prendre une éternité et même mes démos JMP standard prenaient un peu plus de temps que je n’étais habitué. J'ai essayé des choses normales telles que réparer les autorisations, vérifier la mémoire, voir s'il y avait des extensions de noyau corrompues et même aller jusqu'à installer une version propre de Mac OS Mavericks pour voir si cela résoudrait le problème que je voyais.
Je me suis alors rendu compte que cela pourrait être quelque chose qui se passe avec mon lecteur à état solide (SSD). Comme je disposais toujours du disque dur d'origine (lecteur à rotation standard) fourni avec mon MacBook Pro, je l'ai installé et essayé de démarrer à partir du lecteur d'origine.
Geekbench est un programme que j'utilise pour voir le fonctionnement de votre ordinateur. Il effectue un certain nombre de tâches gourmandes en ressources processeur, graphiques et sur disque, puis renvoie un numéro de performance monocœur et multicœur que vous pouvez ensuite comparer à une base de données d'ordinateurs spécifiés de la même façon. Ensuite, vous pouvez voir si vous obtenez des performances comparables.
Eh bien, il s’avère que les performances de mon ordinateur devraient être d’environ 2 000 pour un seul cœur et de 10 000 pour un multi-cœur. Je recevais 700 pour un seul cœur et 3 000 pour un multi-cœur avec le SSD. Lorsque je remettais le disque dur d'origine dans mon ordinateur portable, les performances atteignaient environ 2 000 et 8 500, ce qui est bien plus proche de ce qu'il devrait être.
Alors évidemment, quelque chose se passait avec mon lecteur. N'abandonnant pas, j'ai décidé de voir si je pouvais le reconditionner. J'ai également pensé que c'était une excellente occasion de collecter et de visualiser certaines données à l'aide de JMP. J'ai utilisé un programme appelé DiskTester, de la suite Digiloyd Tools. L'une des fonctions de DiskTester est une fonction de reconditionnement SSD. Cela écrit une grande quantité de données sur tout l'espace libre d'un lecteur et vous permet d'itérer un certain nombre de fois. Le programme indique le décalage de bloc en Mo, la vitesse d'écriture moyenne, la vitesse d'écriture actuelle ainsi que les vitesses d'écriture minimale et maximale.
Selon le développeur de Digiloyd Tools, le disque "répond à ce traitement en se nettoyant et en se défragmentant lui-même". Si ce processus fonctionne sur mon disque, je verrais des performances assez mauvaises pour la première itération qui s'améliorent considérablement après quelques itérations.
J'ai donc effacé mon lecteur, démarré à partir de mon autre lecteur interne et lancé le processus de reconditionnement en le laissant s'exécuter du jour au lendemain et en collectant huit itérations de données brutes.
DiskTester m'a donné la possibilité de copier les données brutes dans le Presse-papiers, ce que j'ai fait, puis de créer un fichier .txt que je vais maintenant importer dans JMP.
J'utiliserai Fichier> Ouvrir pour obtenir le fichier .txt, puis, lorsque cette option me sera proposée, je choisirai Ouvrir en tant que: Données (à l'aide de la prévisualisation), ce qui me permet d'inspecter les données avant de les intégrer à JMP.

Je suis satisfait de l'aspect des colonnes et je vois par l'icône 123 que toutes mes données seront transmises de manière continue, c'est ce que je veux. Dans cette fenêtre, j'ai la possibilité de donner les noms des colonnes, ce que je ferai.

Et maintenant, j'ai mes données brutes dans JMP, mais il me reste une étape à franchir avant de pouvoir visualiser les résultats. Vous pouvez voir qu'il me manque une colonne importante, qui est le numéro d'itération. J'aurai besoin de cela pour l'utiliser comme variable de phase ou de regroupement. Heureusement, je peux générer cela assez facilement dans JMP. Je vais créer une nouvelle colonne, puis cliquer avec le bouton droit de la souris pour accéder aux informations sur la colonne. Lorsque vous créez une nouvelle colonne, vous avez la possibilité d’initialiser les données. Je vais choisir les données de la séquence, puis entrer 1 pour le De, 8 pour le Pour (comme je veux les données de l'itération de 1 à 8) et 1 pour le Step.
Je sais que mon dernier bloc correspond à 482 176 Mo et que le programme écrit des blocs de 128 Mo, ce qui signifie que chaque itération aura 3 767 mesures uniques. Je vais donc mettre 3767 dans le champ Répéter chaque valeur N fois.
Je peux vérifier mon travail en consultant les lignes 3 767 et 3 768. Bien sûr, 3 767 est étiqueté itération 1 et 3 768 est étiqueté itération 2. Maintenant je suis prêt à partir.

Je vais utiliser Graph Builder pour voir ce qui se passe dans les données. Avoir le décalage en Go au lieu de Mo est peut-être un meilleur moyen d’afficher les étiquettes sur l’axe des abscisses pour l’ensemble de mes tracés. Avant d’aller plus loin, je vais transformer le MB en Go en cliquant avec le bouton droit de la souris. Décalez MB, cliquez sur Formule puis prenez Offset MB et divisez par 1000. Cela crée une colonne de transformation personnalisée sans avoir à revenir à la table de données. Je souhaiterai l'utiliser plus tard. Je le renommerai donc Décalage en Go. Cliquez avec le bouton droit de la souris puis sélectionnez: Ajouter au tableau de données. Le graphique ci-dessous montre le modèle de lecture des performances sur le lecteur pour chaque itération. La transparence des points a été réduite à 0,1 pour que nous puissions mieux les voir et nous avons également ajouté une limite de spécifications inférieure à 110 Mo / s au graphique.

Comme vous pouvez le constater sur le graphique, les performances lors de la première itération sont omniprésentes. Bien que les performances d'écriture moyennes soient correctes (91 Mo / s), de nombreux fragments de 128 Mo sont écrits beaucoup plus lentement sur le disque. Par itération 2, cependant, les choses commencent à s'améliorer considérablement. Les performances d'écriture moyennes ont augmenté à 115 Mo / s. À la cinquième itération, les choses commencent à s'installer et à ce moment-là, il semble que je voie un comportement asymptotique dans les performances d'écriture.
Ce qui reste à travers toutes les itérations, cependant, est une bande de blocs qui se situent dans la tranche supérieure des 40 pour la performance en écriture. Même à la fin du test, 130 blocs sont dans le secteur le moins performant. Ceci est grandement amélioré depuis la première itération, où 2 294 blocs sont en dessous de la limite spécifiée. Si j'ajoute un filtre de données local à Générateur de graphes, je peux me concentrer uniquement sur la première et la dernière itérations et comparer les performances. Alors que les performances en écriture semblent être très variables pour l'itération 1, l'itération 8 comporte trois bandes droites, indiquant des performances constantes sur tous les secteurs testés du lecteur. La cause des secteurs les moins performants reste un mystère pour moi, mais je suppose que cela pourrait être quelque chose dans le système d’exploitation, où le programme est interrompu par une autre tâche système entraînant une baisse des performances mesurées. (Si quelqu'un a une meilleure hypothèse, laissez-la dans les commentaires).

Donc, cette grande question est: "Est-ce que cela a fonctionné?" Eh bien, je suis heureux de signaler que cela a fonctionné. Après avoir exécuté la procédure de reconditionnement et réinstallé le lecteur sur mon ordinateur portable, mon score Geekbench a été ramené à 2 900/9 500, ce à quoi je devrais m'attendre compte tenu de mes spécifications matérielles. Et la baisse de vitesse drastique que j'ai constatée sur mon ordinateur n'est plus là.