Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Zasto glavi fwrite() pri 25 zapisa/fajlova u sekundi?
#1
Pozdrav,

imam neko parce code-a koji radi prostu stvar, hvata neke pakete podataka koju su veliki oko 5-6kB, ti paketi mi dolaze brzinom od 25 paketa u sekundi i program treba da hvata te podatke i snima u fajlove za neku dalju analizu.

Medjutim, to ne radi dobro, kako pustim to da radi program uhvati/snimi nekih 120-150 paketa/fajlova i nakon toga zaglavi??

Program treba da radi na RPi ali isti problem imam i kada to poteram na PC pod macOS, skoro se sve isto ponasa.
Na PC definitivno nemam problema sa I/O brzinom, to je i7 masina sa Aorus NVMe diskom, brze ot toga nemam ...

Probao sam da snimam i u RAMDISK (tmpfs) i isto se ponasa?

U cemu je ovde problem, ko/sta ovde pravi taj problem?

Code:
    ...
    char buf[128000];
    ...
    // U buf su popunjeni podaci ...
    // U len imam duzinu paketa, menja se izmedju 5 i 6 kB ...
    ...

    //----------------- save samples -------------
    if (samlpe_count < 1000 ) {
        char fname[80];
        sprintf(fname, "sample_%03d.dat", samlpe_count);
        printf("Writing %s ... \r\n", fname);

        FILE *my_write_fd = fopen(fname, "w+");
        fwrite(buf, len, 1, my_write_fd);
        fclose(my_write_fd);

        samlpe_count++;
    }
Reply


Messages In This Thread
Zasto glavi fwrite() pri 25 zapisa/fajlova u sekundi? - by mikikg - 09-23-2020, 02:57 PM

Forum Jump:


Users browsing this thread: 1 Guest(s)