Vitesse de traitement entre _write et fwrite

PeteTheBull Messages postés 7 Date d'inscription mercredi 6 octobre 2004 Statut Membre Dernière intervention 22 juin 2005 - 17 févr. 2005 à 11:58
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 17 févr. 2005 à 22:30
Bonjour



Dans mon programme, je sauvegarde des données (issues d'une acquisition
video) sur mon disque soit en utilisant la fonction "_write", soit en
utilisant la fonction "fwrite". Cette derniere semble fonctionner plus
rapidement car j'arrive a sauver mes 25 images par secondes comme
voulu, alors qu'utiliser "_write" ne me permet de sauver que 22 images
par seconde. Cette derniere semble donc plus lente.



Quelqu'on pourrait-il m'expliquer (si cela vient de ces fonctions) le
pourquoi de cette différence ? Je crois que le "_write" n'est pas
bufferisé, peut-etre que cela change qqch...



Merci d'avance

8 réponses

victorcoasne Messages postés 1101 Date d'inscription jeudi 24 avril 2003 Statut Membre Dernière intervention 23 juillet 2023 7
17 févr. 2005 à 12:37
Bonjour,



Essai avec:



#include <fstream>

using namespace std;

#include <string.h>



char chaine[500+1]; // Tes données sont là

ofstream fichiers("nom.avi");

strcpy(chaine,"lesdonnées");

fichiers.write(chaine,sizeof(chaine));





et dit moi si c'est plus ou moins rapide




Merci,



Le créateur du site http://www.victorlogiciels.com
0
PeteTheBull Messages postés 7 Date d'inscription mercredi 6 octobre 2004 Statut Membre Dernière intervention 22 juin 2005
17 févr. 2005 à 13:22
J'ai testé et c'est exactement pareil (en moyenne). Je ne vois donc toujours pas si cela vient de là...
0
victorcoasne Messages postés 1101 Date d'inscription jeudi 24 avril 2003 Statut Membre Dernière intervention 23 juillet 2023 7
17 févr. 2005 à 13:23
Bonjour,



Essai avec:



#include <fstream>

using namespace std;

#include <string.h>



char chaine[500+1]; // Tes données sont là

ofstream fichiers("nom.avi");

strcpy(chaine,"lesdonnées");

fichiers << chaine;




Merci,



Le créateur du site http://www.victorlogiciels.com
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
17 févr. 2005 à 13:30
C'est pas en rajoutant des couches d'abstraction (stream and co) qu'on améliore les performances, faut au contraire descendre au niveau de l'API système.

ciao...
BruNews, MVP VC++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
victorcoasne Messages postés 1101 Date d'inscription jeudi 24 avril 2003 Statut Membre Dernière intervention 23 juillet 2023 7
17 févr. 2005 à 13:52
Bonjour,



En clair ça veut dire écrit tes fichiers en ASM !



Merci,



Le créateur du site http://www.victorlogiciels.com
0
ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
17 févr. 2005 à 14:20
Pas forcément masi utiliser WriteFile ou les FileMappings.
0
victorcoasne Messages postés 1101 Date d'inscription jeudi 24 avril 2003 Statut Membre Dernière intervention 23 juillet 2023 7
17 févr. 2005 à 14:25
Bonjour,



_asm{

NomFichier DB 'C:\fichier.txt'

MOV DX, OFFSET NomFichier

MOV AH,3Dh

MOV AL,1h

INT 21h

}

par exemple pour ouvrir un fichier après je parle pas pour l'écrire !





Merci,



Le créateur du site http://www.victorlogiciels.com
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
17 févr. 2005 à 22:30
Aucun rapport entre API et ASM 16 bits qu'aucun système moderne n'acceptera.

ciao...
BruNews, MVP VC++
0
Rejoignez-nous