Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
APCu - APC User Cache
C PHP C++ Other
branch: simplify

Merge pull request #90 from khromov/patch-1

Scroll to cache entry when clicking on it
latest commit db5d3db914
@krakjoe authored
Failed to load latest commit information.
apcue every reference to APCG in apc_cache.c removed
tests fix test for APCIterator compat changes
.gitignore Added .gitignore from the php-src
.travis.yml add travis builds
INSTALL no more references to apc_user_cache in apc_sma
LICENSE fix inconsistent member names
Makefile.frag initial import
NOTICE initial import add travis build status image to the
TECHNOTES.txt correction
TODO initial import
apc.c fix inconsistent member names
apc.h always include stddef
apc.php Scroll to cache entry when clicking on it
apc_api.h apc_bin changes to include in API
apc_bin.c always include stddef
apc_bin.h apc_bin changes to include in API
apc_bin_api.h ...
apc_cache.c fix inconsistent member names
apc_cache.h Fix #18, #20 assert 'user' keyword
apc_cache_api.h apache hanging ... #19
apc_globals.h test use of compiler as serializer (apc.serializer = eval)
apc_iterator.c fix #60
apc_iterator.h fix #55
apc_lock.c do not destroy locks
apc_lock.h completion of API, external caches possible ...
apc_lock_api.h mistake
apc_mmap.c initial import
apc_mmap.h initial import
apc_php.h initial import
apc_php_pcre.h initial import
apc_pool.c force visiblity on api declarations
apc_pool.h fix #12
apc_pool_api.h avoid clashes
apc_rfc1867.c consistency/corrections
apc_serializer.h Fixed issue #29 php_apcu.dll does not load anymore under X64
apc_shm.c initial import
apc_shm.h initial import
apc_signal.c apc_signal.c:75:13: warning: 'apc_clear_cache' defined but not used […
apc_signal.h initial import
apc_sma.c force visiblity on api declarations
apc_sma.h 3 easy steps to using SMA API externally
apc_sma_api.h fixed symbol clashing, windows debug mode, again
apc_stack.c initial import
apc_stack.h initial import
apc_windows_srwlock_kernel.c integrated srwlock kernel from APC
apc_windows_srwlock_kernel.h integrated srwlock kernel from APC
config.m4 fix #46
config.w32 restore APC hook for register serializer, fix #24
package.xml update package
pgsql_s_lock.c pgsql_s_lock.c/h removed by accident
pgsql_s_lock.h pgsql_s_lock.c/h removed by accident
php_apc.c fix apc compat
php_apc.h bump version


APCu is userland caching: APC stripped of opcode caching in preparation for the deployment of Zend Optimizer+ as the primary solution to opcode caching in future versions of PHP.

APCu has a revised and simplified codebase, by the time the PECL release is available, every part of APCu being used will have received review and where necessary or appropriate, changes.

Simplifying and documenting the API of APCu completely removes the barrier to maintenance and development of APCu in the future, and additionally allows us to make optimizations not possible previously because of APC's inherent complexity.

APCu only supports userland caching (and dumping) of variables, providing an upgrade path for the future. When O+ takes over, many will be tempted to use 3rd party solutions to userland caching, possibly even distributed solutions; this would be a grave error. The tried and tested APC codebase provides far superior support for local storage of PHP variables.

Build Status

Specific Changes

* appropriate changes (removals) to configuration parameters (complete)
* appropriate changes to userspace management script (complete)
* revision of APC locking (complete)
* revision of APC's caching API (complete)
* revision of APC's PHP internals (complete)
* revision of APC's userspace API (complete)
* revision of APC's shared memory allocator (complete)
* revision of APC's pooling API (complete, no functional changes, documented)
* installation of SIGUSR1 handler (where possible) to clear cache (complete)
* format API headers so they can be referenced externally (complete, see apcue)
* allows runtime adjustable control over how the cache is purged (complete)
* documentation of all associated API's (ongoing, mostly complete, all headers and source file documented and commented)

Still to Do:

* test/stabilize

The C api does not retain backward compatibility, anyone relying on APC that will rely on APCu in the future should review the changes as soon as possible and continue to track them. The PHP api will retain compatibility with APC, as will common configuration options, providing a drop in replacement.

Something went wrong with that request. Please try again.