non, tu n'as pas bien compris
Il n'y a pas de cas général sur la problématique dont tu parles. C'est ce qu'il y a à retenir. Le tip top, c'est de faire les deux implémentations et de mesurer la différence de perf dans ton contexte.
Quel que soit la performance au final, tu auras toujours une envie particulière. Quel est le gain, de ton point de vue, d'avoir du texte (lisibilité, possibilité d'éditer les fichiers à la main, ... ?) plutôt que du binaire, ou l'inverse (empêcher un utilisateur boulet de mettre les mains dans le fichier juste en le binarisant, ca peut avoir du sens)
Le formatage des données en ascii peut prendre un peu de temps, c'est certain, mais en fonction du reste de ton programme, ca peut être tout à fait négligeable et n'altérer les performances, disons, que de 0.001%, je n'en sais rien.
Si tu te poses la question pour un fichier de quelques ko (même, quelques centaines de ko) que tu vas écrire ponctuellement, alors tu perds clairement ton temps à te poser ces questions.
Autre hypothèse : tu peux être dans un cas où tu as un soft qui brasse énormément de données sur le disque (soft de base de données sous une grosse charge ou que sais-je encore) et te poser la question de texte ou binaire pour un fichier de trace, avec ... disons ... 2Go de log en texte contre 1Go en binaire. Dans ce cas là, que tu aies plusieurs coeurs ou pas, il est probable que d'utiliser du texte ralentisse ton appli seulement parce que tu vas soumettre ton disque à plus forte contrainte, et ce, que tu sois en mono ou multi core.
Bref, implémente une version "basique" des deux solutions, même si elle couvre pas tous les détails, mais un truc qui te donne une idée dans les grande lignes et mesure les perfs, si tu dois vraiment te poser la question. Tu ne trouveras pas de réponse miracle.
---------------
last.fm