Równoległy odczyt plików Ruby

Mam plik z wieloma liniami (powiedzmy 1 miliard). Skrypt przegląda wszystkie te linie, aby porównać je z innym zestawem danych.

Ponieważ w tej chwili działa na 1 wątku / 1 rdzeniu, zastanawiam się, czy mogę uruchomić wiele wideł, z których każdy przetwarza część pliku jednocześnie.

Jedyne rozwiązanie, które do tej pory przyszło mi do głowy, tosed polecenie unix. Z sed można odczytać „plasterki” pliku (linia x do linii y). Tak więc kilka widelców może przetwarzać dane wyjściowe odpowiednich sedów. Jednak problem polega na tym, że Ruby najpierw załaduje całe wyjście sed do pamięci RAM.

Czy są na to lepsze rozwiązania niż sed, czy istnieje sposób na „strumieniowanie” wyjścia sed do Rubiego?

questionAnswers(2)

yourAnswerToTheQuestion