]> granicus.if.org Git - php/commitdiff
- Small optimization. Filling up the Cache helps performance.
authorZeev Suraski <zeev@php.net>
Tue, 16 May 2000 15:42:16 +0000 (15:42 +0000)
committerZeev Suraski <zeev@php.net>
Tue, 16 May 2000 15:42:16 +0000 (15:42 +0000)
Zend/zend_alloc.c

index d9602c3f6969a6e3a0d25984f07e2fb2901bc500..2b1034eab115e11227177588721aa28ff7ba24fa 100644 (file)
@@ -319,6 +319,9 @@ ZEND_API int zend_set_memory_limit(unsigned int memory_limit)
 
 ZEND_API void start_memory_manager(ALS_D)
 {
+       int i, j;
+       void *cached_entries[MAX_CACHED_MEMORY][MAX_CACHED_ENTRIES];
+
        AG(phead) = AG(head) = NULL;
        
 #if MEMORY_LIMIT
@@ -334,6 +337,18 @@ ZEND_API void start_memory_manager(ALS_D)
 
        memset(AG(fast_cache_list_head), 0, sizeof(AG(fast_cache_list_head)));
        memset(AG(cache_count),0,MAX_CACHED_MEMORY*sizeof(unsigned char));
+
+       /* Initialize cache, to prevent fragmentation */
+       for (i=1; i<MAX_CACHED_MEMORY; i++) {
+               for (j=0; j<MAX_CACHED_ENTRIES; j++) {
+                       cached_entries[i][j] = emalloc(i);
+               }
+       }
+       for (i=1; i<MAX_CACHED_MEMORY; i++) {
+               for (j=0; j<MAX_CACHED_ENTRIES; j++) {
+                       efree(cached_entries[i][j]);
+               }
+       }
 }