09-23-2020, 02:57 PM
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?
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++;
}