Sto cercando di implementare una ricerca del dizionario molto, molto grande per abbinare le parole in una frase in PHP. La mia idea iniziale era di usare l'algoritmo Aho-corasick, poiché l'Aho-corasick risolve il mio problema esatto. In primo luogo ho implementato un Trie in PHP. Il Trie, quando memorizzato nella cache, crea un dizionario sufficientemente veloce; tuttavia, occupa circa 3mb di memoria. Questo non sta andando bene in PHP.Come condividere la memoria tra richieste HTTP in PHP?
Ovviamente, non importa la struttura dati che usiamo, un grande dizionario occuperà molto di memoria. Ho solo bisogno di una singola istanza del dizionario, poiché è statica e non sarà necessario ricostruirla.
Se questo oggetto può essere condiviso tra tutti i thread, 3mb di memoria è trascurabile, tuttavia, non sono sicuro del modo corretto di condividere la memoria tra i thread in PHP.
Come posso condividere questo oggetto tra richieste HTTP? Non riesco a vedere il ridimensionamento del progetto quando ogni thread richiede un sovraccarico di 3mb creato solo dal Trie.
PHP generalmente non esegue il threading. Anche 'Trie' probabilmente non si arrichisce. Intendevi 'Tree'. 3MB è * non molto * per il processo medio di PHP. – Evert
Trie è un nome proprio che descrive una particolare struttura di dati https://en.wikipedia.org/wiki/Trie –
http://stackoverflow.com/a/209799/1888402 "[Non c'è threading.] La prossima cosa migliore sarebbe semplicemente avere uno script eseguirne un altro tramite CLI, ma è un po 'rudimentale, a seconda di cosa si sta tentando di fare e di quanto sia complessa, questa potrebbe essere o meno un'opzione ". - Wilco –