Commit Graph

148 Commits

Author SHA1 Message Date
Andi Gutmans
380c082e32 - Commit an initial version of a home made memory manager.
- It's just for seeing if this would be an advantage to PHP in MT
- environments. If this is to become production material there is still
- a long way to go.
2002-06-16 17:17:47 +00:00
Sebastian Bergmann
8463225b49 Revert. 2002-04-28 06:24:15 +00:00
Sebastian Bergmann
90bad130a9 MFZE1: If the size-operands of memset are constants, the compiler can turn them into fast inline code. So, instead of using ecalloc, we use emalloc + memset in macro form now. emalloc will not return NULL, so the chosen macro form is safe. This is not true for malloc(3). An inline function accomodates our needs here. Suggested by: http://www.mail-archive.com/dev%40httpd.apache.org/msg02492.html (Sascha) 2002-04-27 15:23:46 +00:00
Andi Gutmans
7df1601239 - MFZE1 2002-02-26 19:17:26 +00:00
Sebastian Bergmann
62dc854bb0 Happy New Year. 2002-01-06 15:21:36 +00:00
Sebastian Bergmann
d863d52a5d Update headers. 2001-12-11 15:16:21 +00:00
Zeev Suraski
b02df6f4ac MFZE1 2001-08-17 14:53:55 +00:00
Zeev Suraski
4f6c95d17a Whitespace 2001-08-11 15:56:40 +00:00
Zeev Suraski
c06dbe23bb Fix buglet 2001-08-03 16:08:01 +00:00
Zeev Suraski
e206bd3374 Fix macro 2001-08-03 08:15:16 +00:00
Zeev Suraski
66d9314b60 Implement fast memory allocation and reduced fragmentation under Windows. 2001-08-03 07:06:05 +00:00
Zeev Suraski
b4f3b9d3ce Redesigned thread safety mechanism - nua nua 2001-07-28 10:51:54 +00:00
Sascha Schumann
b677af2265 tsrm_error is only available, if TSRM_DEBUG is defined. 2001-07-23 04:21:11 +00:00
Sascha Schumann
28ecbb213c tsrm_error is only available, if TSRM_DEBUG is defined. 2001-07-23 04:19:32 +00:00
Andi Gutmans
55687ca216 - Fix the memory limit fix. 2001-06-30 07:58:34 +00:00
Zeev Suraski
3eb6d65ece Fix memory_limit, kill warning 2001-06-29 00:36:34 +00:00
Andi Gutmans
34e0c392e8 - Fix memory fragmention problem which could lead to web server processes
growing much more than they should. (bug #11344?)
2001-06-19 17:59:07 +00:00
Thies C. Arntzen
473d3eae45 reset allocated_memory_peak after each request. 2001-05-18 14:32:11 +00:00
Zeev Suraski
c7464b7d6a Fix build 2001-05-17 12:51:24 +00:00
Zeev Suraski
41fbc95fe1 Fix build 2001-05-17 11:22:49 +00:00
Zeev Suraski
260b4d0dbf Merge memory usage into memory limit 2001-05-16 15:02:30 +00:00
Thies C. Arntzen
8ca106bffc added --enable-memory-usage-info 2001-05-11 18:16:41 +00:00
Andi Gutmans
aa1c46b3d8 - Try to solve crash on OS400. There is actually no reason I can see for
why his fix should solve a crash but it doesn't harm.
2001-04-30 05:39:37 +00:00
Andi Gutmans
277ab5f223 - Improve overwrite detection in debug mode. 2001-04-29 13:00:46 +00:00
Andi Gutmans
1df2271224 - Just some little whitespace stuff. 2001-04-28 15:59:39 +00:00
Andi Gutmans
429aed9066 - Don't add/remove cached memory blocks from blocks list as this will slow
- down performance a bit.
2001-04-28 15:45:50 +00:00
Andi Gutmans
0971ff99cb - Whitespace changes to be standard like the rest of Zend 2001-04-27 18:51:56 +00:00
Zeev Suraski
1078e61c74 small beautification 2001-04-17 15:19:14 +00:00
Andi Gutmans
d2c9e8074c - Update copyright year 2001-02-26 05:43:27 +00:00
Zeev Suraski
903018ef36 - Remove backward dependency from PHP -> Zend
- Rename get_ini_entry() as get_configuration_directive() for clarity
  (it doesn't use the INI subsystem, but the module-supplied function for
  retrieving configuration directives)
2001-01-07 18:39:11 +00:00
Zeev Suraski
42b0e1cb1f Forgot to commit the non-debug build fix yesterday... 2000-11-18 11:43:08 +00:00
Zeev Suraski
9a0b61a619 Add thread-safety debugging information (idea - Dmitri Dmitrienko) 2000-11-18 02:43:23 +00:00
Andi Gutmans
6d92ac275d - Fix fprintf 2000-10-04 19:29:28 +00:00
Zeev Suraski
79b0a56c51 Fix build with no memory_limit 2000-08-19 16:51:30 +00:00
Zeev Suraski
07b5d74022 Fix memory_limit 2000-08-19 16:35:02 +00:00
Zeev Suraski
b896825e8f Nuke a warning 2000-06-24 22:11:11 +00:00
Andi Gutmans
93e9520314 - Change cache size and only initialize part of it. 2000-06-22 18:33:09 +00:00
Stanislav Malyshev
bb57053f76 Cached-freed memory blocks should not be in "occupied" list 2000-06-22 17:51:14 +00:00
Stanislav Malyshev
7f87a319aa Make cache counters to be unsigned int
Start collecting statistics after cache pre-fill
2000-06-22 09:17:38 +00:00
Andi Gutmans
988435cf04 - More correct way of doing bit mask 2000-06-14 19:10:30 +00:00
Andi Gutmans
ae19180641 - Forgot to remove the FIXME 2000-06-09 17:52:09 +00:00
Andi Gutmans
717acfe9c5 - Make the memory limit accurate 2000-06-09 17:51:37 +00:00
Andi Gutmans
605b1aa394 - Fix cache initialization 2000-06-09 16:08:30 +00:00
Andi Gutmans
9fb095b50e - Allocate and cache in 8 byte blocks. Most allocators anyway use 8 byte
- blocks. This should help fragmentation and cache hits.
- The old tree is tagged as PRE_EIGHT_BYTE_ALLOC_PATCH
2000-06-09 15:54:14 +00:00
Zeev Suraski
957327e8bc Do it in thread unsafe mode for now. 2000-05-18 14:51:19 +00:00
Sascha Schumann
86c03cceb0 Kill warnings 2000-05-18 12:07:15 +00:00
Andi Gutmans
a786fc4ab7 - Do this someplace else. 2000-05-18 11:25:03 +00:00
Zeev Suraski
ac0e07ecda - Small optimization. Filling up the Cache helps performance. 2000-05-16 15:42:16 +00:00
Andi Gutmans
a9ec11476c - Return real size allocated 2000-05-08 16:18:20 +00:00
Andi Gutmans
2572b088d0 *** empty log message *** 2000-03-25 19:23:16 +00:00
Zeev Suraski
5e55e47f7f It's official now... 2000-03-06 05:26:39 +00:00
Zeev Suraski
0ac9536d99 (c) patch 2000-02-19 22:46:42 +00:00
Zeev Suraski
80bdd19e03 Fine tune Andi's patch 2000-02-11 15:59:30 +00:00
Andi Gutmans
bc5c9d8d7b - Finally beautify those WIN32|WINNT checks 2000-02-10 17:03:53 +00:00
Zeev Suraski
0517436bf9 - Fix foreach()
- Fix indirect reference with object properties
2000-01-31 18:21:54 +00:00
Zeev Suraski
5864b57eec This should enable people to use ALLOC_ZVAL() in code outside the php4.dll 1999-12-30 05:25:44 +00:00
Zeev Suraski
8f88443aba time_t is an int under Linux... this should always work. 1999-12-29 17:22:47 +00:00
Sascha Schumann
32ef59b290 Fix warnings 1999-12-28 20:33:02 +00:00
Zeev Suraski
b7a5b3c309 - Generalize the fast cache mechanism
- Add the HashTable struct to the fast cache mechanism
1999-12-27 19:07:33 +00:00
Zeev Suraski
1ad06e428d *** empty log message *** 1999-12-27 17:24:33 +00:00
Zeev Suraski
ebd4445ba2 Add cache statistics support 1999-12-27 16:42:59 +00:00
Zeev Suraski
3c50b7ee45 - Enable the new zval cache on debug too. No real reason not to, and it keeps
the code cleaner.
- ZTS compile fixes
1999-12-26 23:20:18 +00:00
Zeev Suraski
b90bc0b15c Fix buglet 1999-12-26 22:50:08 +00:00
Zeev Suraski
aec33aa753 Introduce a zval-specific cache - 5-15% speed improvement 1999-12-26 21:56:59 +00:00
Zeev Suraski
c517633b49 namespace protection 1999-12-26 20:45:42 +00:00
Zeev Suraski
3a47431122 No need to block for interruptions so early 1999-12-21 15:48:56 +00:00
Zeev Suraski
4481898ff7 Add ability to disable the memory cache 1999-11-27 00:04:36 +00:00
Zeev Suraski
b264733bc1 Fix compile problem with enable-memory-limit 1999-11-22 22:27:04 +00:00
Stig S. Bakken
009025e00d * header file cleanup
* fixed --enable-thread-safety build for UNIX

I don't have a Win32 environment available, could someone please try
compiling on Win32 to see if I got all the header file stuff right there?
1999-09-06 16:14:08 +00:00
Andi Gutmans
99947a251e - Shift around header files. 1999-09-05 19:03:35 +00:00
Zeev Suraski
81e0131bc9 *** empty log message *** 1999-08-28 21:43:24 +00:00
Zeev Suraski
cda27ae9ac Beef up debug macros 1999-08-28 10:18:54 +00:00
Zeev Suraski
aa8b27ba1d Better debug macros 1999-08-27 19:17:19 +00:00
Zeev Suraski
8d1de13aef 0.91 update 1999-07-19 20:02:12 +00:00
Zeev Suraski
b5b1117760 License update 1999-07-16 14:58:16 +00:00
Zeev Suraski
3b037ebbe9 Oh, that dumb bug. 1999-07-10 22:50:44 +00:00
Zeev Suraski
cccd2445ee Get rid of AiCount completely 1999-07-10 11:45:23 +00:00
Zeev Suraski
cdce334c56 *** empty log message *** 1999-07-09 11:19:38 +00:00
Zeev Suraski
cc26d0e609 Send a SIGSEGV instead of exiting, to trigger a core dump 1999-07-09 11:10:19 +00:00
Zeev Suraski
6abe9c34d9 * Support recoverable failure from erealloc()
* Fix the shutdown code on an unrecoverable erealloc() failure
1999-07-09 11:03:56 +00:00
Zeev Suraski
98b6ddda90 * Make the memory leak reporting code much better with repeats
* Remove useless variables
1999-06-26 11:48:22 +00:00
Zeev Suraski
3eac45ea80 * Fix concatenation of arrays (it was PHP 3.0 style, copying zval's instead
of zval *, and it wasn't using reference counting)
* Fix a memory leak in static array()'s with textual indices
1999-06-22 19:05:40 +00:00
Zeev Suraski
63f2cc9fe9 *** empty log message *** 1999-05-31 18:39:29 +00:00
Sascha Schumann
88029643d0 * fix some casts
* introduce unary_op_type - cleaner than casting data voids to function ptrs
1999-05-30 13:28:56 +00:00
Zeev Suraski
741b816136 * Support getThis() for internal functions.
* Fix 'new object or die' and AiCount issue thoroughly (earlier fix didn't
  work with the optimizer).
* Add new macros for standardized definition of classes.
* Only report AiCount problems if shutdown was not silent.
1999-05-28 12:06:59 +00:00
Zeev Suraski
05f6cf54f0 Warn about AiCount not zeroing out 1999-05-22 16:48:23 +00:00
Zeev Suraski
1250c43a39 * Add struct name to all typedef's so that they can be debugged with MSVC
* Fix an AiCount bug - list(...) = $var was using $var multiple times, and thus
causing AiCount to be decreased multiple times even though it was increased only
once for $var.  Mark all FETCH_DIM's so that they won't decrease AiCount, and only
decrease AiCount on the last FETCH_DIM.
* Fix a stupid bug - forgot to pass CLS_C to some compiler function.  For some reason
MSVC doesn't report these :I
1999-05-22 16:10:51 +00:00
Zeev Suraski
080105f79f Give more information and save log lines in memory leak reports 1999-05-22 11:20:56 +00:00
Zeev Suraski
e22cce0dda Easier Win32 debug code 1999-05-11 21:38:39 +00:00
Zeev Suraski
74a9ed7b3f Weed out all BoundsChecker-found bugs (including a serious file descriptor leak
in the C++ scanner)
1999-05-10 20:46:42 +00:00
Zeev Suraski
7c4a08381e Various thread safety fixes and DLL updates 1999-04-26 14:10:42 +00:00
Andi Gutmans
df6134bc42 -More commits 1999-04-26 03:03:39 +00:00
Zeev Suraski
1aa2c5c0b4 Ok, call me crazy, because I probably am.
Thread safe version now uses a C++ scanner object.  Works fully.
1999-04-23 03:32:33 +00:00
Zeev Suraski
7a87fcbbda Thread safety patch. We're still not quite there but it compiles again, and
more logic has been implemented.
1999-04-21 03:49:09 +00:00
Zeev Suraski
342c6e0b23 Whatnot:
* updated alloc_persist to use critical sections
* changed extension shutdown to two-phase
* updated dependencies
* PR support (don't remember if there was any really)
1999-04-18 15:11:52 +00:00
Zeev Suraski
4472d05025 Allow runtime setting of the memory limit 1999-04-10 16:24:28 +00:00
Zeev Suraski
2e9886de3c Get rid of php3_ini in Zend 1999-04-10 14:44:35 +00:00
Andi Gutmans
573b46022c Zend Library 1999-04-07 18:10:10 +00:00