You are viewing a plain text version of this content. The canonical link for it is here.
Posted to builds@apache.org by Kristian Waagan <kr...@apache.org> on 2010/02/08 12:40:17 UTC

Clover on largish projects

Hi,

Does anyone have any experience running Clover on largish projects?
I'm trying to get Clover running for Derby, which has around 500'000+ 
lines of code (excluding blank lines and comments) and somewhere around 
10'000+ test cases (differs hugely wrt size/complexity).
Since this is a database, I assume most of the tests involves executing 
the core pieces of the database engine.

I have managed to run most of the tests with Clover. The Clover database 
currently weighs in at 4.7 GB, and one of the "half-baked" reports is 
5.7 GB big.

Now, when I try to generate the HTML report, it always fails with 
out-of-memory exceptions. I'm currently running with 
'<clover-html-report numThreads="0" maxtestsperfile="10"/>', using 
Clover 2.4.3.
I've tried running with a heap of 5 GB, but still I get OOMEs. This 
suggests to me that Clover report generation isn't really written to 
process large amounts of data. I can increase the heap further, but then 
I'll be using almost all the memory on the slave, which I'd prefer not 
to do...

I've seen some other knobs introduced in Clover 2.6.
Is it worth upgrading to 2.6? Is it a lot better?
Any other ways I can make this work?
Alternative tools?
(Apache Derby build is ant based)

I know some of these questions are rather basic, but I'm hoping for some 
valuable input as this is a side-project to which I cannot devote that 
much time at the moment.


Regards,
-- 
Kristian


Re: Clover on largish projects

Posted by Kristian Waagan <kr...@apache.org>.
On 08.02.10 13:37, Uwe Schindler wrote:
> Clover 2.6 is good if you were affected by some bugs in 2.4.3 (at lucene we had some bugs with encoding and our backwards compatibility tests). But Clover 2.6 needs also more memory. For Lucene (Core+Contrib, about 1000 files) we need -Xmx896 when building the clover HTML report, the knobs have almost no effect at all (from my standpoint). The Hudson workspace is 2 GB after the build with clover.

Thanks for the feedback, Owe.

I took the time to run Clover 2.6 on a different machine I have access 
to (2 dual-core 2.8 GHz AMD CPUs).
Running with 6 GB heap and default report configuration, here's what it 
took:
real    1607m34.310s
user    613m18.073s
sys     40m1.137s

That's more than 26 hours... Needless to say, this won't be running in 
Hudson :)
Further, some of the HTML report files are more than 10 MB big. The 
report directory weighs in at a little over 2.6 GB.

When I get the cycles I'll try to disable the per test coverage data, 
and maybe try with more threads. I suspect that reading the ~300K data 
files in the Clover data directory takes a while...


-- 
Kristian


>
> -----
> Uwe Schindler
> H.-H.-Meier-Allee 63, D-28213 Bremen
> http://www.thetaphi.de
> eMail: uwe@thetaphi.de
>
>> -----Original Message-----
>> From: Kristian.Waagan@Sun.COM [mailto:Kristian.Waagan@Sun.COM] On
>> Behalf Of Kristian Waagan
>> Sent: Monday, February 08, 2010 12:40 PM
>> To: builds@apache.org
>> Subject: Clover on largish projects
>>
>> Hi,
>>
>> Does anyone have any experience running Clover on largish projects?
>> I'm trying to get Clover running for Derby, which has around 500'000+
>> lines of code (excluding blank lines and comments) and somewhere around
>> 10'000+ test cases (differs hugely wrt size/complexity).
>> Since this is a database, I assume most of the tests involves executing
>> the core pieces of the database engine.
>>
>> I have managed to run most of the tests with Clover. The Clover
>> database
>> currently weighs in at 4.7 GB, and one of the "half-baked" reports is
>> 5.7 GB big.
>>
>> Now, when I try to generate the HTML report, it always fails with
>> out-of-memory exceptions. I'm currently running with
>> '<clover-html-report numThreads="0" maxtestsperfile="10"/>', using
>> Clover 2.4.3.
>> I've tried running with a heap of 5 GB, but still I get OOMEs. This
>> suggests to me that Clover report generation isn't really written to
>> process large amounts of data. I can increase the heap further, but
>> then
>> I'll be using almost all the memory on the slave, which I'd prefer not
>> to do...
>>
>> I've seen some other knobs introduced in Clover 2.6.
>> Is it worth upgrading to 2.6? Is it a lot better?
>> Any other ways I can make this work?
>> Alternative tools?
>> (Apache Derby build is ant based)
>>
>> I know some of these questions are rather basic, but I'm hoping for
>> some
>> valuable input as this is a side-project to which I cannot devote that
>> much time at the moment.
>>
>>
>> Regards,
>> --
>> Kristian
>
>


RE: Clover on largish projects

Posted by Uwe Schindler <uw...@thetaphi.de>.
Clover 2.6 is good if you were affected by some bugs in 2.4.3 (at lucene we had some bugs with encoding and our backwards compatibility tests). But Clover 2.6 needs also more memory. For Lucene (Core+Contrib, about 1000 files) we need -Xmx896 when building the clover HTML report, the knobs have almost no effect at all (from my standpoint). The Hudson workspace is 2 GB after the build with clover.

-----
Uwe Schindler
H.-H.-Meier-Allee 63, D-28213 Bremen
http://www.thetaphi.de
eMail: uwe@thetaphi.de

> -----Original Message-----
> From: Kristian.Waagan@Sun.COM [mailto:Kristian.Waagan@Sun.COM] On
> Behalf Of Kristian Waagan
> Sent: Monday, February 08, 2010 12:40 PM
> To: builds@apache.org
> Subject: Clover on largish projects
> 
> Hi,
> 
> Does anyone have any experience running Clover on largish projects?
> I'm trying to get Clover running for Derby, which has around 500'000+
> lines of code (excluding blank lines and comments) and somewhere around
> 10'000+ test cases (differs hugely wrt size/complexity).
> Since this is a database, I assume most of the tests involves executing
> the core pieces of the database engine.
> 
> I have managed to run most of the tests with Clover. The Clover
> database
> currently weighs in at 4.7 GB, and one of the "half-baked" reports is
> 5.7 GB big.
> 
> Now, when I try to generate the HTML report, it always fails with
> out-of-memory exceptions. I'm currently running with
> '<clover-html-report numThreads="0" maxtestsperfile="10"/>', using
> Clover 2.4.3.
> I've tried running with a heap of 5 GB, but still I get OOMEs. This
> suggests to me that Clover report generation isn't really written to
> process large amounts of data. I can increase the heap further, but
> then
> I'll be using almost all the memory on the slave, which I'd prefer not
> to do...
> 
> I've seen some other knobs introduced in Clover 2.6.
> Is it worth upgrading to 2.6? Is it a lot better?
> Any other ways I can make this work?
> Alternative tools?
> (Apache Derby build is ant based)
> 
> I know some of these questions are rather basic, but I'm hoping for
> some
> valuable input as this is a side-project to which I cannot devote that
> much time at the moment.
> 
> 
> Regards,
> --
> Kristian