pecl:apc:todo:40

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
pecl:apc:todo:40 [2009/10/10 21:10] – Brain-dump of where things stand with 4.0 shirepecl:apc:todo:40 [2017/09/22 13:28] (current) – external edit 127.0.0.1
Line 10: Line 10:
 | Windows Compatability | In-Progress | 4.0.0a | kalle, pierre, shire | Ensure we have windows compatability and testing |  | Windows Compatability | In-Progress | 4.0.0a | kalle, pierre, shire | Ensure we have windows compatability and testing | 
 | mmap replacement for windows | ?? | ?? | pierre, kalle | Implement a replacement for mmap on windows | | mmap replacement for windows | ?? | ?? | pierre, kalle | Implement a replacement for mmap on windows |
-| TSRMLS_FETCH() | In-Progress | 4.0.0a | shire | Remove as many TSRMLS_FETCH() calls as possible or in perf. critical regions to improve TS performance. |+| TSRMLS_FETCH() | In-Progress | 4.0.0a | shire, kalle | Remove as many TSRMLS_FETCH() calls as possible or in perf. critical regions to improve TS performance. |
 | Documentation | Not Started | 4.0.0a | shire | Need to update documentation both in code (TECHNOTES) as well as in the official PHP documentation (location?) or wiki so users know about changes and can better get up to speed with APC.  Should also put together an upgrade quickstart guide. | | Documentation | Not Started | 4.0.0a | shire | Need to update documentation both in code (TECHNOTES) as well as in the official PHP documentation (location?) or wiki so users know about changes and can better get up to speed with APC.  Should also put together an upgrade quickstart guide. |
 | apc.php cleanup | Not Started | 4.0.0b | shire | apc.php page still needs lots of fixing, additional features etc.  If you're interested in helping I have a detaild list ;-) |   | apc.php cleanup | Not Started | 4.0.0b | shire | apc.php page still needs lots of fixing, additional features etc.  If you're interested in helping I have a detaild list ;-) |  
 | on-disk cache (.phpc) | In-Progress/Experimental | 4.0.0b | shire | Ability to dump compiled opcodes to disk per file (ie: .phpc files) so large code-bases such as CLI can get a speed improvement, as well as being able to distribute .phpc files as part of a push process to production servers so source code isn't on the remote machine. | | on-disk cache (.phpc) | In-Progress/Experimental | 4.0.0b | shire | Ability to dump compiled opcodes to disk per file (ie: .phpc files) so large code-bases such as CLI can get a speed improvement, as well as being able to distribute .phpc files as part of a push process to production servers so source code isn't on the remote machine. |
 +| Spin-lock stabalization | In-Progress | 4.0.0b | shire | Spin locks are stable except for a signal handling problem in Zend.  A patch has been prepared and needs to be tested/integrated into a PHP release.  We need to test further on windows, finalize the patch, and get it into core.  If this will be delayed including a patch with APC may be useful for some looking to get gains from this. | 
 +| Windows locking | Not Started | 4.0.0b | shire, pierre, kalle | Sounds like we need to look at our options for windows locking so we have a good, stable, efficient option that works on both Win and Unix flavors.  Spin locks would be my first choice, but we need testing of support on windows and improvement of the signal handling problem for stability. |  
 +| Virtual Host/Location | In-Progress/Partial | 4.0.0a | shire | With multiple cache support, the idea of separating files or user cache values based upon the virtual host or location became easier to support.  Add a location or virtual host option to the per-cache configuration, essentially what the file cache filters option currently supports on the 4.x branch.  This will automatically limit or direct file/user entries to the appropriate cache. | 
 +| Hash stats/improve file hash | Not started | 4.0.0b | shire | We currently don't have stats for our hash collisions/performance, so we should add some stats that can be enabled/disabled here without affecting performance.  We should then eval. the performance of the hash() function used for file device/inode and see if it should be more robust or if it's current performance is acceptable |
  
 ====== Research ====== ====== Research ======
Line 24: Line 27:
 | Memory usage | Not Started | n/a | shire | Currently memory usage per key is pretty significant, we should investigate ways to improve this | | Memory usage | Not Started | n/a | shire | Currently memory usage per key is pretty significant, we should investigate ways to improve this |
 | Binary Serialization | Not Started | n/a | shire | Currently we do a very logic based copy of data in APC, with allocations per struct, and memory pointers that are not sequential.  Ideally every key's data would be sequential and could be compressed and de-serialized by unswizzling pointers rather than re-creating the structures in process memory. This is related in ways to pool allocation, as well as possibly conflicting with memory fragmentation and no-copy optimization | | Binary Serialization | Not Started | n/a | shire | Currently we do a very logic based copy of data in APC, with allocations per struct, and memory pointers that are not sequential.  Ideally every key's data would be sequential and could be compressed and de-serialized by unswizzling pointers rather than re-creating the structures in process memory. This is related in ways to pool allocation, as well as possibly conflicting with memory fragmentation and no-copy optimization |
 +| fine-grained locking | Needs verification/testing | n/a | shire | Locks are current per-cache, we've already optimized locks down to pthread locks and spin locks which have very good performance, so the next level optimization would be either lock-free algorithms or finer-grained locking (or some combination of both).  A patch has been developed for per-slot based locking, however my tests have yet to prove that this can provide any substantial performance gains.  This should be-reverfied. |
  
  
    
  
pecl/apc/todo/40.1255209029.txt.gz · Last modified: 2017/09/22 13:28 (external edit)