Если вы создаете веб-сайт и вам нужны счетчики, есть много бесплатных аналитических служб (Google Analytics, Yahoo Analytics и т. Д.) И служб счетчиков, которые могут предоставить гораздо больше информации, чем простой сценарий счетчика. Это будет моя рекомендация.
Однако, если вы что-то строите сами и имеете контроль над сервером, вы можете использовать другой инструмент для фактического подсчета. Для этой цели я использовал memcache, так как он поддерживает методы «add» и «increment», которые при вызове за другим (из-за ограничений на использование команды) могут создавать такие высокоскоростные счетчики реального времени.
Memcache - это чрезвычайно быстрое (200 000+ запросов в секунду на медленной машине) решение для кэширования памяти, но оно не является постоянным хранилищем. Вам понадобится другое решение для хранения подсчитанных чисел.
Это мое решение для такой задачи, добавленное в начало запроса в его собственной функции:
$m = new Memcache;
$m->addServer('localhost', 11211);
$cacheKey = "performance_".gmmktime();
// Add in case it doesn't exist, no compression, 1 hour timeout
$m->add($cacheKey, (int) 0, false, (60*60));
// Increment cache
$m->increment($cacheKey, (int) 1);
Изменение $ cacheKey также позволяет считать несколько разных вещей.
Затем у меня есть другой фрагмент кода, который каждую минуту собирает эту информацию в скрипте cron и добавляет ее в базу данных. Это решение также работает на нескольких компьютерах, в зависимости от потребностей вашей реализации, что позволяет реализовать масштабируемую реализацию счетчика.
Очевидно, что это всего лишь простой пример, но, надеюсь, вы сможете увидеть его использование. Этот код используется в крупномасштабном многосерверном игровом сервисе с PHP.