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:27] – vhost/location task 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 ;-) |  
Line 17: Line 17:
 | 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. |  | 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. | | 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 27: 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.1255210029.txt.gz · Last modified: 2017/09/22 13:28 (external edit)