Próbuję zaimplementować bardzo, bardzo duże wyszukiwanie słownika, aby dopasować słowa w zdaniu w PHP. Moim początkowym pomysłem było użycie algorytmu Aho-corasick, ponieważ Aho-corasick rozwiązuje mój dokładny problem. Najpierw zaimplementowałem Trie w PHP. Trie, gdy jest buforowany, tworzy wystarczająco szybki słownik; jednak zajmuje około 3 MB pamięci. To nie będzie dobrze skalowane w PHP.Jak udostępnić pamięć między żądaniami HTTP w PHP?
Oczywiście, bez względu na strukturę danych, której używamy, duży słownik zajmie dużo pamięci o numerze. Potrzebuję tylko jednej instancji słownika, ponieważ jest statyczna i nie trzeba jej odbudowywać.
Jeśli ten obiekt może być współdzielony między wszystkimi wątkami, 3 MB pamięci jest pomijalne, jednak nie jestem pewien co do właściwego sposobu współużytkowania pamięci między wątkami w PHP.
Jak mogę udostępnić ten obiekt między żądaniami HTTP? Nie widzę skalowania projektu, gdy każdy wątek wymaga 3mb narzutów tworzonych przez Triego.
PHP na ogół nie robi wątków. 'Trie' również prawdopodobnie nie jest uciążliwe. Miałeś na myśli 'Drzewo'. 3 MB to * niewiele * dla przeciętnego procesu PHP. – Evert
Trie jest właściwym rzeczownikiem opisującym konkretną strukturę danych https://en.wikipedia.org/wiki/Trie –
http://stackoverflow.com/a/209799/1888402 "[Nie ma wątków.] Kolejna najlepsza rzecz byłoby po prostu mieć jeden skrypt wykonać inny za pośrednictwem CLI, ale to trochę elementarne.Zależnie od tego, co próbujesz zrobić i jak skomplikowane, to może lub nie może być opcja. " - Wilco –