Quelle est la charge relative d'appel times()
par rapport aux opérations de fichier telles que la lecture d'une ligne fread()
.Dépassement de l'appel système times() par rapport aux opérations sur les fichiers
Je sais que cela diffère probablement d'OS à OS et dépend de la durée de la ligne est, où se trouve le fichier, si c'est vraiment un tuyau qui est bloqué (ce n'est pas), etc.
Très probablement le fichier n'est pas local mais se trouve sur un lecteur NFS monté quelque part sur le réseau local. Le cas courant est une ligne de 20 caractères. Si cela aide, supposons le noyau Linux 2.6.9. Le code pas sera exécuté sur Windows.
Je suis juste à la recherche d'un guide approximatif. Est-ce sur le même ordre de grandeur? Plus rapide? Ralentissez?
But ultime: Je cherche à implémenter une routine de rappel de progression, mais je ne veux pas appeler trop souvent (car le rappel est probablement très coûteux). La majorité du travail consiste à lire un fichier texte (ligne par ligne) et à faire quelque chose avec la ligne. Malheureusement, certaines des lignes sont très long, donc simplement appeler toutes les lignes N
n'est pas efficace dans les cas pathologiques trop souvent vu. J'évite d'écrire un benchmark parce que j'ai peur de l'écrire mal et j'espère que la sagesse de la foule est plus grande que mes tests à moitié cuits.
Pouvez-vous simplement utiliser 'strace' comme point de repère d'un pauvre sur vos données réelles? –