Erico,
I will look into this tonight, and get it fixed. I'm not sure why the
buffering is there, perhaps someone else on the team knows why it is
there. But as far as I can see there is no need for it to be there.
-Mark
On Sep 3, 2:16 pm, "Erico Franco" <[EMAIL PROTECTED]> wrote:
> Hi Mark,
>
> Thanks for the attention about this.
>
> I did 2 tests: in one I removed ob_start from paintFall():
>
> function paintPass($message) {
> //removed ob_start();
> parent::paintPass($message);
>
> if ($this->_show_passes) {
> echo "<li class='pass'>\n";
> echo "<span>Passed</span> ";
> $breadcrumb = Set::filter($this->getTestList());
> array_shift($breadcrumb);
> echo implode(" -> ", $breadcrumb);
> echo "<br />" . $this->_htmlEntities($message) . "\n";
> echo "</li>\n";
> }
> }
>
> on the second I added a ob_end_flush() on the end:
>
> function paintPass($message) {
> ob_start();
> parent::paintPass($message);
>
> if ($this->_show_passes) {
> echo "<li class='pass'>\n";
> echo "<span>Passed</span> ";
> $breadcrumb = Set::filter($this->getTestList());
> array_shift($breadcrumb);
> echo implode(" -> ", $breadcrumb);
> echo "<br />" . $this->_htmlEntities($message) . "\n";
> echo "</li>\n";
> }
> ob_end_flush();//by erico
> }
>
> in both cases the result is the same: memory leak is gone as it will consume
> less than 1k compared to the original 41k.
>
> I don't know the impact of this change on assertEqual() functionaly, it is
> just a test to check what is getting these 41k of memory.
>
> Also I'm not familiar with memory usage on PHP and I'm not sure memory leak
> behavior would crash a test execution due to memory problems, but I think it
> should be investigated.
>
> This is how I'm measuring memory usage on assertEqual (inside a testcase):
>
> $memory_get_usage_0 = memory_get_usage();
>
> $i = 1;
> $_loops = 300;
>
> while ($i <= $_loops) {
>
> $this->assertEqual(true, true);
> $i++;
> }
>
> $memory_get_usage = memory_get_usage();
>
> $memory_used = round(($memory_get_usage - $memory_get_usage_0) /
> $_loops);
>
> best regards
>
> Erico
>
> 2008/9/3 mark_story <[EMAIL PROTECTED]>
>
>
>
> > Erico,
>
> > That is a little strange. I'll look further into it. If the leak is
> > coming from paintPass() / paintFail() it should exist for every
> > assertion not just assertEqual().
>
> > -Mark
>
> > On Sep 3, 1:43 pm, "Erico Franco" <[EMAIL PROTECTED]> wrote:
> > > Hi Mark,
>
> > > Thanks for the reply.
>
> > > I've noticed the memory leak is caused due to call of ob_start() inside
> > > cake/tests/lib/cake_reporter.php (paintPass($message) function) without
> > any
> > > ob_end_flush() call.
>
> > > In this way, successive assertEqual() calls will result in ob_start()
> > calls
> > > without any ob_end_flush() calls.
>
> > > According to PHP documentation, ob_start() and ob_end_flush() should be
> > > called the same number of times:
>
> > >http://www.php.net/ob_start
>
> > > I'm not sure if ob_end_flush() is finally being called on the very end of
> > > test suite execution, but each time an asserEqual is being called it is
> > > getting 40K of memory.
>
> > > regards
>
> > > Erico
>
> > > 2008/9/3 mark_story <[EMAIL PROTECTED]>
>
> > > > On Sep 2, 2:25 pm, Defranco <[EMAIL PROTECTED]> wrote:
> > > > > Hi,
>
> > > > > I just noticed that assertEqual() function (test suite) in cakephp
> > 1.2
> > > > > RC2 is consuming some memory inside test cases.
>
> > > > > I noticed that 300 assertEqual() executions, gets about 20 MB of PHP
> > > > > free mem usage.
>
> > > > > It sounds a Memory Leak isn't it?
>
> > > > > I'm using cakephp 1.2.0.7296 RC2, and debug set to 1
>
> > > > > kind regards
>
> > > > > defranco
>
> > > > If there is a memory leak it most likely be related to SimpleTest
> > > > rather than CakePHP as we do not maintain the SimpleTest libraries. I
> > > > haven't noticed any out of memory errors personally. But perhaps the
> > > > simpletest people might know something about it.
>
> > > > -Mark
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"CakePHP" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/cake-php?hl=en
-~----------~----~----~----~------~----~------~--~---