コード例 #1
0
    $curTime = microtime(true) - $curTime;
    $sum += $curTime;
}
// average?
$avgNaive = $sum / (double) $sampleCount;
printf("Classic search; sampleCount: %d; keySize: %d; timeAvg: %f\n\n", $sampleCount, $keySize, $avgNaive);
// do advanced search - aho corasick
$memStart = memory_get_usage();
$overalTime = array();
$sum = 0;
for ($j = 0; $j < $sampleCount; $j++) {
    $curTime = microtime(true);
    // init aho structure
    $data = array();
    for ($i = 0; $i < $keySize; $i++) {
        $data[] = array('id' => $i, 'value' => $randomKeys[$i], 'aux' => $randomBuffers);
    }
    $c = ahocorasick_init($data);
    foreach ($randomBuffers as $randomBuffer) {
        $d = ahocorasick_match($randomBuffer, $c);
    }
    ahocorasick_deinit($c);
    $curTime = microtime(true) - $curTime;
    $sum += $curTime;
    unset($data);
    unset($d);
}
$memStop = memory_get_usage();
$avgAho = $sum / (double) $sampleCount;
printf("AhoCorasick search; sampleCount: %d; keySize: %d; timeAvg: %f s, totalTime: %f s, memory increase: %d B\n\n", $sampleCount, $keySize, $avgAho, $sum, $memStop - $memStart);
printf("AhoCorasick pattern matching is %f times faster than naive approach\n", $avgNaive / $avgAho);
コード例 #2
0
ファイル: test.php プロジェクト: 98002014/php_aho_corasick
<?php

echo "Going to init: \n";
$data = array(array('key' => 'ab', 'value' => 'alfa', 'ignoreCase' => true), array('key' => 'ac', 'value' => 'beta', 'ignoreCase' => true), array('key' => 'ad', 'value' => 'gamma', 'ignoreCase' => true), array('key' => 'ae', 'value' => 'delta', 'ignoreCase' => true), array('key' => 'af', 'value' => 'zeta', 'ignoreCase' => true), array('key' => 'ag', 'value' => 'omega', 'ignoreCase' => true), array('key' => 'ah', 'value' => 'lfa', 'ignoreCase' => true));
$c = ahocorasick_init($data);
var_dump($c);
$d = ahocorasick_match("alFABETA gammadelta delta delta!", $c);
var_dump($d);
$d = ahocorasick_match("alFABETAABECEDAAAA!", $c);
var_dump($d);
$d = ahocorasick_match("alFABETAABECEDAAAA!", $c, false);
var_dump($d);
$d = ahocorasick_match("alFABETAABECEDAAAA!", $c, true);
var_dump($d);
var_dump(ahocorasick_isValid($c));
var_dump(ahocorasick_deinit($c));
var_dump($c);
if ($c) {
    var_dump(ahocorasick_isValid($c));
    var_dump(ahocorasick_deinit($c));
}