Existe-t-il un moyen fiable, rapide et déterministe (par exemple et non un test de performances) pour vérifier si le lecteur système Mac OS X est sous tension?Comment détecter SSD sous Mac OS X?
Existe-t-il un autre indicateur de la façon dont le disque gère l'accès parallèle? J'essaie d'ajuster le nombre de threads que mon programme va utiliser pour les opérations liées au disque.
Je ne suis pas intéressé par la vitesse brute ou le temps de recherche, seul le type d'accès (série ou parallèle) est plus rapide pour le lecteur. Je ne m'attends pas à ce que les utilisateurs de mon programme utilisent iSCSI ou RAID. SSD est mon objectif, tout le reste est agréable à avoir.
Device Characteristics
de IOAHCIBlockStorageDevice
contient cette information. Comment puis-je le lire par programme?
Jusqu'à présent, j'ai compris il va comme ceci: (Voici pseudocode)
match = IOBSDNameMatching(kIOMasterPortDefault,0,"disk0s2");
IOServiceGetMatchingServices(kIOMasterPortDefault, match, &iterator);
while(entry = IOIteratorNext(iterator)) {
do {
entry = IORegistryEntryGetParentEntry(nextMedia, kIOServicePlane, &entry);
dict = IORegistryEntryCreateCFProperty(nextMedia,
CFSTR(kIOPropertyDeviceCharacteristicsKey), kCFAllocatorDefault, 0);
[dict objectForKey:CFSTR(kIOPropertyMediumTypeKey)];
}
while(!dict && entry);
}
Edit: Here's complete source code. J'ai vérifié qu'il fonctionne avec Intel SSD et OCZ Vertex.
Voir aussi http://stackoverflow.com/q/908188/545127 – Raedwald