Visualizzazione dei risultati da 1 a 7 su 7

Visualizzazione discussione

  1. #1

    [C++] Scrittura file in rete lentissima con ofstream

    Salve,
    ho piccolo problema di prestazioni per quanto riguarda la scrittura di un file attraverso la rete.
    Il mio codice legge i byte di un file e poi li scrive su un altro file, una sorta di copia incolla. Fin qui tutto bene, ma le prestazioni calano vistosamente quando il file di destinazione è su un percorso di rete e non riesco a capirne il motivo:

    codice:
    //path del file di destinazione
    string destinationFile="//cartella_di_rete/file.dati";
    //file di destinazione
    ofstream outfile(destinationFile, ios::binary | ios::out | ios::trunc);
    //crea il buffer di lettura
    mybuffer = new uint8[20480*512];
    //cicla per leggere il file diviso in diversi chunk
    for (int i = 1; i <= chunk; i++)
    {
         //funzione che legge il file originale e lo copia nel buffer(in realtà è molto più complessa, 
        // in quanto si tratta di una funzione di terzi ma non ci interessa in questa sede)
         bool ckok= ReadFile( mybuffer, i);
        if (ckok)
          outfile.write((char*)mybuffer, bufSize);
    }
    
    delete(mybuffer);
    outfile.close();
    cioè si parla di 10Mb/s se il file di destinazione è locale contro 2Mb/s se il file è in rete... una differenza piuttosto sensibile direi che in sistemi più performanti del mio di test si fa sentire ancora di più..

    qualcuno di voi ha qualche idea?
    Ultima modifica di Whitecrowsrain; 29-12-2017 a 17:26
    "Due cose riempiono l’animo di ammirazione e venerazione sempre nuova e crescente, quanto piú spesso e piú a lungo la riflessione si occupa di esse: il cielo stellato sopra di me, e la legge morale in me..." Immanuel Kant

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.