* Defragmentation now reclaims unused space from moved entries,
resulting in better compaction.
* Shared memory for new entries is allocated faster in scenarios with
many free memory blocks. This should improve APCu's insertion
performance when entries are frequently deleted or replaced, or when
APCu is used with larger amounts of memory.
* Trying to insert entries larger than the shared memory no longer
results in cache wipes.
* Fix build against PHP 8.6.
* Fix apc.php compatibility with older apcu versions.
OBS-URL: https://build.opensuse.org/package/show/server:php:extensions/php-APCu?expand=0&rev=21
* Fixed hang introduced in apcu 5.1.25, which can occur when
defragmentation is triggered under load.
* Fixed a test on PHP 8.5.
- Update to version 5.1.25
* If the cache is full, try to clean up expired entries based on their
per-entry hard TTL even if the soft apc.ttl is 0. Previously the entire
cache was discarded.
* If a new entry cannot be inserted due to fragmentation, the cache will
be defragmented, combining many small free blocks into one big free
block by moving around cache entries. This avoids the need to discard
the entire cache in more cases.
* The access time (which is used by the soft apc.ttl) is now also updated
when using apcu_exists().
* apc.entries_hint now defaults to 512 entries per 1MB of shared memory.
Previously the default was 4096, independent of shm_size. This could
lead to a large number of hash collisions if shm_size was increased
without also increasing entries_hint.
* Added apc.mmap_hugepage_size to use huge pages of a certain size for the
apcu shared memory segment. This requires support for huge pages to be
enabled in the kernel. Note that even if this option is not set, shared
memory is still configured to use transparent huge pages.
* The apc.shm_segments ini option has been removed. Multiple SHM segments
are no longer supported. (They were already not supported when using
mmap, which is the default mode of operation)
* The apc.smart configuration setting should now work more reliably.
Values > 1 can be used to increase the chance of discarding the entire
cache when the amount of memory freed by removing expired entries was
too small. This could be useful if performance degrades due to executing
the logic to remove expired entries (+ defragmentation) too frequently
during periods of high memory usage.
* The number of cache cleanups performed (removal of expired entries) is
now available in the array returned by apcu_cache_info() (via array key
"cleanups").
* The number of defragmentations performed is now available in the array
returned by apcu_cache_info() (via array key "defragmentations").
* Fixed several issues that caused inserting new entries to fail
unexpectedly.
OBS-URL: https://build.opensuse.org/package/show/server:php:extensions/php-APCu?expand=0&rev=17
- Update to version 5.1.23
* Revert use of monotonic clock for TTL
* Fix a crash when serializing packed arrays (e.g. lists) in PHP 8.2+
with `apc.serializer=default`.
* Reduce memory usage when serializing packed arrays (e.g. lists) in
PHP 8.2+ with `apc.serializer=default`.
* Speed up serializing arrays with `apc.serializer=default`.
* Reduce memory usage when unserializing instances of the empty array
in PHP 7.3+.
* Removed no longer working apcue extension.
* Increased limit on maximum number of slots.
* Made tests compatible with PHP 8.3.
OBS-URL: https://build.opensuse.org/request/show/1127476
OBS-URL: https://build.opensuse.org/package/show/server:php:extensions/php-APCu?expand=0&rev=13
- Update to version 5.1.20
* Fix deadlocks when other apcu_* functions are used inside apcu_entry().
It should now be safe to use any functions inside the apcu_entry()
callback.
* Fix division by zero exception in apc.php.
* Fix handling of references in PHP 8 if "default" serializer is used
(which is not the default).
* Fix string reuse handling if "default" serializer is used (which is
not the default).
* Check for failures when acquiring read locks to report problems
earlier (write locks were already checked previously).
* Adjust tests for current PHP 8.1 development branch.
* Remove *_api.h headers. Use apc_cache.h instead of apc_cache_api.h etc.
OBS-URL: https://build.opensuse.org/request/show/876705
OBS-URL: https://build.opensuse.org/package/show/server:php:extensions/php-APCu?expand=0&rev=6