Exemple #1
0
$time_start = microtime_float();
$CNT = 200;
$mode = 'mg';
if ('s' == $mode) {
    for ($i = 0; $i < $CNT; $i++) {
        if (mt_rand(0, 1)) {
            $cnt = new Counter('AnySlot', $i);
            echo '<h2>' . $cnt->increment() . '</h2>';
        }
    }
}
if ('g' == $mode) {
    $rez = array();
    for ($i = 1; $i <= $CNT; $i++) {
        $cnt = new Counter('AnySlot', $i);
        $rez[$i] = $cnt->get();
    }
    echo "<hr><pre>";
    var_export($rez);
    echo '</pre><hr>';
}
if ('mg' == $mode) {
    $keys = array_keys(array_fill(1, $CNT, 1));
    echo "<hr><pre>";
    var_export(Counter::mget('AnySlot', $keys));
    //var_export( Counter::mget('AnySlot',$keys, TRUE) );
    echo '</pre><hr>';
}
//;
//$cnt->set_updelim(0);
//echo '<h2>'.$cnt->get().'</h2>';
Exemple #2
0
<?php

echo '<hr>memory_get_usage: ' . memory_get_usage() / 1024 . 'Κα<br>';
require './config/Counter.php';
require './src/class.counter.php';
require './src/class.memstore.php';
require './src/class.redis.php';
function microtime_float()
{
    list($usec, $sec) = explode(" ", microtime());
    return (double) $usec + (double) $sec;
}
################################################################################
$time_start = microtime_float();
$cnt = new Counter('AnySlot', 22);
//$cnt->set_updelim(0);
echo '<h2>$cnt->get() = ' . $cnt->get() . '</h2>';
//echo '<h2>$cnt->del() = '.(int)$cnt->del().'</h2>';
echo '<h2>$cnt->increment() = ' . $cnt->increment() . '</h2>';
//echo '<h2>'.$cnt->get().'</h2>';
//echo $cnt->set(11);
echo '<hr>memory get: ' . memory_get_usage() / 1024 . 'Κα<br>';
echo '<hr>memory peak: ' . memory_get_peak_usage() / 1024 . 'Κα<br>';
echo '<hr>time: ' . (microtime_float() - $time_start) * 1000 . ' ms<br>';
Exemple #3
0
<?php

require_once './Counter.php';
$counter = new Counter();
$counter->increment();
$cnt = $counter->get();
?>

<html>
<head>
    <title>PHP講座 - トップページ</title>
</head>
<body>
<h1>PHP講座</h1>
<p>あなたは<?php 
echo $cnt;
?>
番目の訪問者です</p>
</body>
</html>
Exemple #4
0
<?php

require '../views/head.part.php';
?>
<h1> SHOW ME </h1>

<?php 
$counters = new Counter();
$c = $counters->get($_GET['id']);
?>

<h2><?php 
echo $c->name;
?>
 : <span class="herecomethenumber<?php 
echo $c->id;
?>
"><?php 
echo $c->count;
?>
</span></h2>

<button class="ui green button" counter-id="<?php 
echo $c->id;
?>
">+1</button></br></br>

<?php 
require '../views/footer.part.php';
Exemple #5
0
<?php

require 'head.part.php';
$C = new Counter();
$counter = $C->get($_GET['id']);
?>

<h2>kroko=<?php 
echo $counter->name;
?>
 : <span id="herecomethenumber"><?php 
echo $counter->count;
?>
</span></h2>

<button counter-id="<?php 
echo $counter->id;
?>
">+</button>

<?php 
require 'foot.part.php';
Exemple #6
0
 static function mget($SlotName, $keys, $fillZero = false)
 {
     $pf = crc32(self::NAME_SPACE . $SlotName) + 4294967296.0 . '#';
     $rez = $fillZero ? array_fill_keys($keys, 0) : array();
     $keys = array_combine($keys, array_map(function ($id) use($pf) {
         return $pf . $id;
     }, $keys));
     $reKeys = array_flip($keys);
     $SlotClName = 'Counter_Slot_' . $SlotName;
     $memstore = $SlotClName::memstore();
     foreach ($memstore->get($keys) as $k => $v) {
         $rez[$reKeys[$k]] = $v;
     }
     if (!$fillZero) {
         $diffKeys = array_diff_key($keys, $rez);
         if (count($diffKeys) && is_subclass_of($SlotClName, 'Counter_Slot_Multi_Interface')) {
             # Если mget для слота задан, то получаем оптом
             $expire = $SlotClName::expire();
             foreach ($SlotClName::mget(array_keys($diffKeys)) as $k => $v) {
                 $rez[$k] = $v;
                 $memstore->add($keys[$k], $v, $expire);
             }
         } else {
             # Если mget для слота не задан, то получаем по одному
             foreach ($diffKeys as $k => $v) {
                 $cnt = new Counter($SlotName, $k);
                 $rez[$k] = $cnt->get();
             }
         }
     }
     return $rez;
 }