Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254

    [c++] ReadFIle lentissima

    Salve,

    Ho un filtro directshow che serve per leggere un file di tipo custom..

    All'interno uso un thread che legge a blocchi il file mettendolo in un buffer.. ma ho notato che a volte la ReadFile ci mette anche più di mezzo secondo per leggere blocchi di circa 7 megabite..

    [code]

    BYTE *TempBuf = new BYTE[144000 * 25 * 2];
    DWORD dwRead;

    bool ok = true;

    ok = ReadFile (m_hFile, TempBuf, 144000 * 25 * 2, &dwRead, NULL);

    [code]

    dove m_hFile è un handle al file aperto in lettura..

    Idee?

  2. #2
    Il ritardo può essere causato da moltissimi fattori... dalla posizione della testina sul disco al ritardo causato dall'antivirus, o anche dall'effettiva allocazione della memoria che si verifica al momento di riempire il buffer. Dovresti munirti di un profiler e fare qualche prova (lettura file di dimensioni diverse, riempimento del buffer con numeri casuali invece che con il contenuto del file, disattivazione dell'antivirus, ...).
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    lo sto provando su file in rete (rete a un gigabit) senza antivirus..

    cmq anche in locale lo fa.. ma solo su file grandi (alcuni giga) mentre su file piccoli no..

    l'hard disk sembra avere ottime performance e non è frammentato (preso da 0)

  4. #4
    Se è su rete le cose si complicano ancora di più, perché ci va di mezzo l'HD del PC remoto, tutti i layer di rete del client e del server, le eventuali collisioni e pacchetti persi, nonché l'autenticazione (che può darsi che debba essere ripetuta ogni tot, non conosco bene le specifiche del protocollo SMB).
    Amaro C++, il gusto pieno dell'undefined behavior.

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 © 2026 vBulletin Solutions, Inc. All rights reserved.