![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 20.02.2015 Ostrzeżenie: (0%) ![]() ![]() |
Cześć.
Napisałem skrypt, który przyjmuje duże (nawet ogromne) ilości tekstu, na wejściu mam pliki po 256 MB (zmienna, którą można regulować, tu pokazane obrazowo). Plik ładuję do zmienne przez potem go przetwarzam. Muszę wyciągać po kilkaset słów, np. 500. Nie byłoby problemu, gdybym mógł te słowa przechowywać w tablicy, jednak przy takiej ilości danych tablice rozrastają się do nieakceptowalnych rozmiarów z punktu widzenia pamięci systemu. Po podzieleniu pliku na słowa, tablica 'zajmuje' ok. 8GB RAM przy dedyku z 32GB. Rozwiązaniem jest korzystanie ze stringów, znalazłem pewne rozwiązanie, jednak nie chce działać tak, jak to założyłem. Mianowicie: Gdzie $_wordLimit to ograniczenie słów dla wyrażenia, a $_content to string z załadowaną zawartością pliku. Rozwiązanie te prawie działa. Prawie, bo zamiast zwracać mi np. 500 pierwszych wyrazów, zwraca owego stringa bez tych wyrazów. Próbowałem już różnych regex'ów, jednak nie udało mi się znaleźć odpowiedniego rozwiązania. PS. Jeszcze raz zaznaczam, że operacje na tablicach odpadają. PS2. Próbowałem też kombinować z zapisywaniem słów do bazy (SQLite3), jednak wydajność czasowa takiego rozwiązania jest tragiczna. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 20.02.2015 Ostrzeżenie: (0%) ![]() ![]() |
Teoretycznie mógłbym to zrobić, jednak wiązałoby się to ze znaczną zmianą kodu.
Jeżeli nic lepszego nie przyjdzie mi do głowy, będę musiał i z tym poeksperymentować. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 933 Pomógł: 460 Dołączył: 2.04.2010 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Teoretycznie mógłbym to zrobić, jednak wiązałoby się to ze znaczną zmianą kodu. Jeżeli nic lepszego nie przyjdzie mi do głowy, będę musiał i z tym poeksperymentować. Wg tego co piszesz to jedyne sensowne rozwiązanie, bo nie odkładasz niepotrzebnie danych do jakichś tablic, tylko robisz wszystko w locie. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 12.10.2025 - 19:46 |