コード例 #1
0
ファイル: test-b-tree.php プロジェクト: sibero/moosql
shuffle($vals);
$b4 = microtime(true);
ob_start();
for ($i = NUM; $i >= 0; $i -= STEP) {
    //echo 'Insert '.$vals[$i].'<br>';
    $btr->insert($fp, $meta, $vals[$i], NUM + $vals[$vals[$i]]);
}
ob_end_clean();
echo 'Inserted ' . floor(NUM / STEP) . ' for ' . round(microtime(true) - $b4, 4) . ' sec<br>';
// delete 1/2 of all entries
define('DELETE_START', round(NUM / 4 / STEP) * STEP);
define('DELETE_STOP', round(3 * NUM / 4 / STEP) * STEP);
$b4 = microtime(true);
for ($i = DELETE_START; $i < DELETE_STOP; $i += STEP) {
    //echo 'Delete '.$i.'<br>';
    $btr->delete($fp, $meta, $i);
}
echo 'Deleted ' . floor((DELETE_STOP - DELETE_START) / STEP) . ' for ' . round(microtime(true) - $b4, 4) . ' sec<br>';
$ins_back = round((DELETE_START + (DELETE_STOP - DELETE_START) / 2) / STEP) * STEP - STEP;
define('INSERT_BACK', min(round(NUM / 2), 10));
for ($j = 0; $j < INSERT_BACK; $j += STEP) {
    $ins_back += STEP;
    echo 'Insert value back: ' . $ins_back . '<br>';
    $btr->insert($fp, $meta, $ins_back, NUM + $vals[$vals[$ins_back]]);
}
$b4 = microtime(true);
for ($i = 0; $i <= NUM; $i += STEP) {
    $res = $btr->fsearch($fp, $meta, $i);
    if (!$res && ($i < DELETE_START || $i >= DELETE_STOP)) {
        echo '<b>Error:</b> Key ' . $i . ' not found<br>';
        continue;