![]() |
|
Welcome to the Computer Webmaster Gaming Console Graphics Forum forums. You are currently viewing our boards as a guest which gives you limited access to view most discussions and access our other features. By joining our free community you will have access to post topics, communicate privately with other members (PM), respond to polls, upload content and access many other special features. Registration is fast, simple and absolutely free so please, join our community today! If you have any problems with the registration process or your account login, please contact contact us. |
| |||||||
| Pear Pear programming, this is a very complex subject as with using pear with php can be a difficult task for some, so lets talk pear. |
![]() |
| | LinkBack | Thread Tools | Display Modes |
| | #1 | ||
| Ciao Bruno, > I'm having a serious memory problem that maybe part of MDB2, or perhaps PHP > itself. I'm posting it here in the hope that somebody will help me to find where > the problem is so I can report the bug, possibly with a fix by myself. > > The problem is: it's eating more memory than a black hole. It eats the > current limit of 256MB set in php.ini, in an application that would hardly > consume 4MB if written in C. can you try with the latest CVS version and tell me if the memory leak is still present, and if so, can you send me a reproducing script? Thanks in advance Best regards, -- Lorenzo Alberton http://pear.php.net/user/quipo __________________________________________________ _________________ Quipo Free Internet - 2 email, 150 Mb di spazio web e molto di pił. ADSL, Hardware & Software Online Store | |||
| | #2 | ||
| Lorenzo Alberton <l.alberton <at> quipo.it> writes: > can you try with the latest CVS version and > tell me if the memory leak is still present, > and if so, can you send me a reproducing > script? > > Thanks in advance > > Best regards, 12345678901234567890123456789012345678901234567890 12345678901234567890 I'll try to send you a reproducing script later today or tomorrow, but I'm inclined to believe, after some tests, that the problem isn't in MDB2. It's very easy to reproduce it, anyway: just run a lot of INSERTs and you'll see it. Here's the sketch of the code: $query = 'INSERT INTO table (field1, field2, field3, field4, field5)' . ' VALUES (?, ?, ?, ?, ?)'; $prepared = $this->db->prepare($query, null, MDB2_PREPARE_MANIP); foreach ($data_array as $data) { echo "Memory before: " . memory_get_usage() . "\n"; $res = $prepared->execute($data); echo "Memory after: " . memory_get_usage() . "\n"; } If you run a SELECT instead of a INSERT, the memory decreases and eventually becomes negative. I think you should read the thread "Reducing memory consumption" in comp.lang.php. Google groups isn't carrying most of the posts, who knows why. Here's my last post on the subject: As I mentioned in the other post, I found out that it isn't DOM eating all the memory, but the SQL queries. Apparently I ran into two bugs: 1) prepare/Execute has a memory leak. This could be happening in MDB2 or in PHP itself, perhaps in the mysqli extension. This happens consistently and eventually exhausts memory. [this happens for INSERTs, I haven't tested SELECTs] 2) there is a problem in mysqli queries that seem to confuse the allocated memory counting, but it's not a serious bug (i.e., it doesn't crash. I successfully completed a long run of my script, which added some 27k entries to the database. Despite the memory becoming negative, it didn't crash, and apparently there was no corruption or unexpected results (not that I could see so far). In this successful #2 run, what I did was get the mysqli connection from mdb2 (with getConnection()) and run mysqli_query() directly. So this problem isn't in MDB2: it's either in PHP itself or in the mysqli extension. My *guess* is that PHP memory system is counting something wrong when it allocates memory. I watched top(1) while the script ran, and it didn't consume a lot of memory (10-16 MB), which is a little more than I'd expect, but I was including MDB2 and other stuff. If I didn't exhaust the memory first, I'd have never noticed that the memory count was negative. I'm still at a loss of whom should I report this bug to. Any suggestions? | |||
| Featured Websites | ||||
|
![]() |
| Tags: leak, mdb2, memory, pear, possible, serious |
| Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
| Thread Tools | |
| Display Modes | |
| |
Similar Threads | ||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| [PEAR] Is it possible to generating multilingual documentation via phpDocumentor | Seyyed Sina Salek | Pear | 1 | 05-20-2007 6:34 PM |
| memory allocation php | Zoe Brown | PHP | 4 | 05-20-2007 6:33 PM |
| GD CPU/memory requirements | flamer die.spam@hotmail.com | PHP | 0 | 05-20-2007 6:33 PM |
| Earliest Memory | frike | The Games | 5 | 07-05-2006 12:45 PM |
| Featured Websites | ||||
|