Question

Je suis en train de faire des simulations longues qui peuvent durer de quelques heures à plusieurs jours et je vous connecter les informations dans les fichiers. Les fichiers peuvent atteindre des tailles de centaines de Mo et à l'intérieur il y a juste une liste de numéros. Je suis vraiment préoccupé par les frais généraux que ce produit est originaire. Je voudrais demander si les frais généraux de cette méthode est vraiment grand et s'il y a une autre méthode plus efficace pour faire la même chose, que les informations du journal.

J'utilise C ++ et pour enregistrer les fichiers que je viens d'utiliser les méthodes communes de fprintf. Pour expliquer les frais généraux si vous pouvez donner un exemple pratique similaire à l'utilisation des fichiers qu'il prend cette fois sans les utiliser cette fois-ci, ce sera l'idéal.

J'ai fait quelques test, mais je ne sais pas si les frais généraux croît avec la taille en ligne directe des fichiers. Ce que je veux dire est qu'il est peut-être pas le même ajouter une ligne à un fichier d'une taille de 1Mo qu'un fichier de taille de 1Go. Est-ce que quelqu'un sait comment les frais généraux croître avec la taille du fichier?.

Était-ce utile?

La solution

Vous avez juste besoin de quelques calculs back-of-the-enveloppe, je pense.

Soit "des centaines de Mb" soit 400MB.
Laissez « plusieurs heures à plusieurs jours » soit 48 heures.

(400 * 1024 * 1024 octets) / (3600 * 48 secondes) = 2427 octets / s

De toute évidence, vous pouvez juste regarder votre système ou utiliser des nombres réels pour le calcul, mais en utilisant l'estimation approximative ci-dessus, vous vous connectez à propos 2KB / sec, ce qui est assez trivial par rapport aux limites du disque dur moyenne.

Alors, non, les frais généraux ne semble pas être très grand. Et oui, il y a des moyens plus efficaces de le faire, mais vous auriez probablement passer plus de temps et d'efforts qu'il vaut la peine pour les économies miniscule que vous obtenez à moins que vos chiffres sont très différents de ce que vous dites.

Autres conseils

« Des centaines de méga-octets » est probablement hors de propos au cours de quelques jours. Des centaines de giga-octets pourraient bien être importants, mais probablement ne pas encore être énorme.

Il y a une façon évidente de trouver la réponse à votre application exacte si: exécuter une simulation avec l'enregistrement sous tension, et l'heure. Ensuite, exécutez (avec la même entrée) avec la journalisation désactivée, et l'heure. Comparer la différence. Idéalement, faire plusieurs fois pour contrebalancer d'autres perturbations. Je suppose que vous vous rendrez compte que les avantages potentiels des lots de l'exploitation forestière l'emporte largement sur l'impact sur les performances.

Vous pouvez mettre les données dans le vecteur STL et a fait quelques profils à vos données, comme:
- exclure des lignes répétées;
- enregistrer uniquement les différences;
- les données de chasse d'eau après quelques temps;
- sélectionner des données spécifiques pour sauver;
- etc ...

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top