Moin!
also 99% der Last wird durch https://github.com/dZotov/shingles/blob/master/shingles.php erzeugt. Aber das ist so einfach da kann man glaube ich nicht viel drehen.
Das sieht aber schon recht "teuer" aus - und vor allem ergibt das, wenn das 50.000 mal gemacht wird, noch sehr viel mehr Schleifendurchläufe:
$text = trim(preg_replace(array('/\s\s+/', '/[^a-zA-Z0-9\s]/'), array(" ", ""), $text));
$text_array = explode(" ", $text);
$shingles = array();
$shingles_hash = array();
for ($i = 0; $i < count($text_array) - $this->m+1; $i++) {
$shingles[] = implode(" ",array_slice($text_array, $i, $this->m));
}
foreach ($shingles as $shigle) {
$shingles_hash[]=crc32($shigle);
}
Jörg Reinholz