temps d'une Entrée Sortie - C++ - Programmation
Marsh Posté le 28-05-2014 à 12:53:36
y'a rien de standard pour ca, ca parait assez évident.
Regarde dans la doc de ton système d'exploitation.
Les mesures que tu feras du côté de ton application seront sans doute faussées par les buffers que ton système d'exploitation peut avoir pour te masquer justement les coûts des entrées et sorties.
Marsh Posté le 28-05-2014 à 15:53:13
Merci pour la réponse mais j'ai pas bien compris.
Je travail sur l'optimisation dans les bases des données. Dans mon travail, j'ai estimé le nombre des ES qui a besoin une requête pour s'exécuter. Je voudrais calculer maintenant le temps d’exécution correspondant à ce nombre des ES. Le problème que je n'arrive pas à obtenir le temps d'une seule ES sur ma machine. J'ai réfléchi donc à utiliser C++ afin de connaitre cette caractéristique.
Si cette information existe dans la doc de mon SE, je ne sais pas exactement ou elle se trouve.
Marsh Posté le 28-05-2014 à 16:37:31
tu parles d'entrées/sorties, mais en fait, tu veux juste mesurer le temps passé à traiter tes requêtes ?
Si c'est le cas, c'est différent, parce que là, oui, en C++11, on a quelque chose de standard pour faire des mesures de temps de ce genre.
Sinon, ton SGBD peut probablement t'aider sur ce genre de stats, non ?
Marsh Posté le 28-05-2014 à 16:49:06
theshockwave a écrit : tu parles d'entrées/sorties, mais en fait, tu veux juste mesurer le temps passé à traiter tes requêtes ? |
Oui je veux juste mesurer le temps passé à traiter mes requêtes mais sans utiliser vraiment un SGBD. J'ai fait juste des estimations et j'ai obtenu des formules mathématiques à appliquer pour avoir un nombre estimé des ES qui a besoin ma requête pour s'exécuter.
Par exemple, si j'ai une table de R de n enregistrements et j'ai toutes les caractéristiques dedans (existence index ou non sur les champs, nombre des colonnes (champs),...), sur cette table je veux exécuter une opération de sélection. Selon les caractéristiques de ma base des données et selon les statistiques que j'ai, j'estime que par exemple le nombre des entrées sorties qu'on besoin est : 10*n ES. (c'est juste un exemple). Je veux calculer maintenant le temps qui correspond à ce nombre des ES.
Je sais que selon la machine, le cout (en s) d'une ES se diffère. J'aime savoir ce paramètre pour ma machine.
Marsh Posté le 28-05-2014 à 17:26:14
Ce que tu veux faire a l'air d'être une bidouille assez moche.
Tu peux trouver la valeur qui t'intéresse pour ta machine en utilisant ta formule et en faisant des mesures avec std::chrono, mais je doute fortement que tu puisses exploiter cette formule pour déterminer comment une autre machine va se comporter.
Marsh Posté le 29-05-2014 à 15:51:18
A ce point cette information est difficile à obtenir .
J'ai une autre méthode : si je créé un base des données simple sur access et si j'exécute une requête sur cette base. Est il possible d'avoir cette information?
Marsh Posté le 29-05-2014 à 20:44:56
Tu veux la mesure à chaud, à froid ? Avec une base de données de combien de lignes ? Moyennement remplie, à vide, avec quelques Go de données dedans ?
Tu ne peux pas attendre un résultat magique pour faire une formule simpliste fiable. Oui, cette "information" va être dure à trouver parce que ce n'est pas une information fixe, et, en soi, elle importe peu, en définitive.
Marsh Posté le 29-05-2014 à 21:49:27
Avec Access, forcément, ce n'est pas rapide.
Les requêtes passent par une vingtaine de couches (objet, Jet, ActiveX, etc), et je n'ai jamais vu une basse Access qui tourne avec des temps corrects.
On dirait que M$ l'a fait exprès pour vendre SQL Server, qui lui est un moteur de base de données tournant à peu près au niveau des autres.
Cela dit, on peut optimiser le fonctionnement d'Access avec beaucoup d'essais différents et en mesurant les temps pour chaque essai.
L'un des problèmes est qu'il n'existe pas un seul Access, mais plusieurs selon les versions et les implantations, et qu'une optimisation qui marche avec une version et un environnement peut ne pas être efficace avec une autre version ou un autre environnement. L'optimisation qu'on avait fini par adopter dans l'une des sociétés où je travaillais, consistait à conserver l'interface Access (les forms) mais de mettre les données dans d'autres bases de données et d'y accéder grâce au système des tables attachées avec les bons drivers, et de faire tourner certaines requêtes en batch de nuit. Dans une autre société, on avait carrément abandonné Access. C'était au début des années 2000, et Access s'est peut-être amélioré, je ne sais pas.
Bref, je ne crois pas que le problème vienne des entrées/sorties, mais de la manière dont Access est fait.
Marsh Posté le 28-05-2014 à 12:31:37
Bonjour à tous,
Combien du temps demande une entrée sortie? J'ai besoin de connaitre la commande C++ à utiliser pour connaitre ce temps.
Merci d'avance.