Changelog

This is a summary of recent changes to APCu, extracted from package.xml.

5.1.28 (2025-12-07)

  • 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.

5.1.27 (2025-08-28)

  • Fixed another hang introduced in apcu 5.1.25, which can occur when defragmentation is triggered under load.
  • Internal changes: The report_memleaks INI directive has been removed from all tests as it will be deprecated in PHP 8.5.

5.1.26 (2025-08-05)

  • Fixed hang introduced in apcu 5.1.25, which can occur when defragmentation is triggered under load.
  • Fixed a test on PHP 8.5.

5.1.25 (2025-07-28)

  • 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.
  • Added apc.mmap_hugepage_size to use huge pages for the apcu shared memory segment.
  • The apc.shm_segments ini option has been removed.
  • The apc.smart configuration setting should now work more reliably.
  • The number of cache cleanups and defragmentations performed is now available in apcu_cache_info().
  • Fixed several issues that caused inserting new entries to fail unexpectedly.

5.1.24 (2024-09-21)

  • Make compatible with PHP 8.4.
  • apc.php: Preserve search parameter when deleting entry.
  • apc.php: Allow arbitrary search regex.