Mam kilka dużych, dużych plików, z którymi pracuję i używam kilku różnych funkcji wejścia/wyjścia, aby uzyskać do nich dostęp. Najpopularniejszym jest pakiet bigmemory
.Sprawdzanie, czy bufory zostały przepłukane w R
Podczas zapisywania plików, nauczyłem się trudnego sposobu na opróżnianie buforów wyjściowych, w przeciwnym razie wszystkie zakłady są wyłączane, czy dane zostały zapisane. Jednak może to prowadzić do bardzo długich czasów oczekiwania, podczas gdy bigmemory
robi to samo (wiele minut). Nie wiem, dlaczego tak się dzieje - nie zawsze się to zdarza i nie jest łatwo reprodukowane.
Czy istnieje sposób określenia, czy bufory I/O zostały opróżnione w R, szczególnie dla bigmemory
? Jeśli system operacyjny ma znaczenie, możesz w ten sposób ograniczyć odpowiedź.
Jeśli odpowiedź może być uogólniona poza bigmemory
, byłoby świetnie, ponieważ czasami polegam na innych funkcjach mapowania pamięci lub strumieniach We/Wy.
Jeśli nie ma dobrych rozwiązań sprawdzających, czy bufory zostały przepłukane, czy istnieją przypadki, w których można założyć, że bufory zostały przepłukane? To znaczy. oprócz używania flush()
.
Aktualizacja: Powinienem wyjaśnić, że są to połączenia binarne. @RichieCotton zauważył, że isIncomplete()
, chociaż dokumentacja pomocy wspomina jedynie połączenia tekstowe. Nie jest jasne, czy jest to użyteczne dla połączeń binarnych.
Not sure about use with 'bigmemory', ale' isIncomplete' działa dla zwykłych połączeń. –
Dzięki! Bardzo ograniczone informacje na temat pomocy połączeń wspomina jedynie, że isIncomplete nadaje się do produkcji połączeń tekstowych. Miałeś szczęście z połączeń binarnych? – Iterator