none
vitesse d ecriture dans un fichier RRS feed

  • Question


  • Bonjour,

    je suis en train d ecrire un code (en vc++) recuperant un flux de données dont la vitesse est de 17,75 MBytes/s.

    J utilise un thread pour capturer ce flux de données (issues d un hardware que j ai designé) et l enregistrer grace à une queue. Je pensais tout simplement enregistrer ce buffer dans un fichier de type binaire. Malheureusement il semblerait que ce ne soit pas possible d écrire à cette vitesse. ( En utilisant une petite fonction pour calculer ce "data-rate" j optiens seulement du 6MByte/s)
    ce matin j ai vérifié que celà ne venait pas de mon disque dur.


    Voilà ce que j utilisais :

    Code Snippet

    FileStream^ fs = gcnew FileStream("test.txt");
    BinaryWriter^ w = gcnew BinaryWriter(fs);
    for (int i=0;i<len;i++ )

    w->Write(unsigned char(xBufs[k][i]));

    Bon j ai simplifié le code. J ai seulement mis la declaration et la manière d écrire.

    J aurais plusieurs questions:

    -> Existe t il d autre maniere d ecrire dans un fichier afin de tenir ce flux de données?
    -> Je pensais séparer la reception et l ecriture. En gros je voulais créer un autre thread dans lequel j ecrirais les données dans le fichier et je le tuerais apres.
    -> existe t il un moyen d ecrire dans un fichier le contenu entier d un tableau (sans passer par une boucle for)

    Merci d avance.

    Damien

    PS : peut etre mes questions sont un peu bêtes mais je ne suis pas un expert en c++ je dirais même un débutant en fait.



    mercredi 12 mars 2008 15:25

Toutes les réponses

  • Bonjour no1no2,

    Pour répondre a tes questions

    1 Existe t il d autre maniere d ecrire dans un fichier afin de tenir ce flux de données?
     - Tu peux toujours changer de technologie et faire du natif.

     - Tu peux aussi utiliser d'autres classes plus rapide que le FileStream

     - Tu peux modifier ta méthode d'encodage

    2 Je pensais séparer la reception et l ecriture.......

     - Bonne idée. par contre la perf d'accès au DD ne changera pas...

    3- existe t il un moyen d ecrire dans un fichier le contenu entier d un tableau ?

     - Oui. En natif facile ...En .C++/CLI sans doute idem...

     

    Question :

    Est ce que tu as idolé les points de blocage de ton appli

    Est ce que tu pourrais comparer natif vs managed

     

    Cordialement

    Michel4CE

    vendredi 21 mars 2008 18:39