| <html> |
| <head> |
| <title>FindBugs Performance Improvements and Regressions</title> |
| <link rel="stylesheet" type="text/css" href="findbugs.css"> |
| |
| </head> |
| <body> |
| |
| <table width="100%"> |
| <tr> |
| |
| |
| <td bgcolor="#b9b9fe" valign="top" align="left" width="20%"> |
| <table width="100%" cellspacing="0" border="0"> |
| <tr><td><a class="sidebar" href="index.html"><img src="umdFindbugs.png" alt="FindBugs"></a></td></tr> |
| |
| <tr><td> </td></tr> |
| |
| <tr><td><b>Docs and Info</b></td></tr> |
| <tr><td><font size="-1"><a class="sidebar" href="findbugs2.html">FindBugs 2.0</a></font></td></tr> |
| <tr><td><font size="-1"><a class="sidebar" href="demo.html">Demo and data</a></font></td></tr> |
| <tr><td><font size="-1"><a class="sidebar" href="users.html">Users and supporters</a></font></td></tr> |
| <tr><td><font size="-1"><a class="sidebar" href="http://findbugs.blogspot.com/">FindBugs blog</a></font></td></tr> |
| <tr><td><font size="-1"><a class="sidebar" href="factSheet.html">Fact sheet</a></font></td></tr> |
| <tr><td><font size="-1"><a class="sidebar" href="manual/index.html">Manual</a></font></td></tr> |
| <tr><td><font size="-1"><a class="sidebar" href="ja/manual/index.html">Manual(ja/日本語)</a></font></td></tr> |
| <tr><td><font size="-1"><a class="sidebar" href="FAQ.html">FAQ</a></font></td></tr> |
| <tr><td><font size="-1"><a class="sidebar" href="bugDescriptions.html">Bug descriptions</a></font></td></tr> |
| <tr><td><font size="-1"><a class="sidebar" href="mailingLists.html">Mailing lists</a></font></td></tr> |
| <tr><td><font size="-1"><a class="sidebar" href="publications.html">Documents and Publications</a></font></td></tr> |
| <tr><td><font size="-1"><a class="sidebar" href="links.html">Links</a></font></td></tr> |
| |
| <tr><td> </td></tr> |
| |
| <tr><td><a class="sidebar" href="downloads.html"><b>Downloads</b></a></td></tr> |
| |
| <tr><td> </td></tr> |
| |
| <tr><td><a class="sidebar" href="http://www.cafeshops.com/findbugs"><b>FindBugs Swag</b></a></td></tr> |
| |
| <tr><td> </td></tr> |
| |
| <tr><td><b>Development</b></td></tr> |
| <tr><td><font size="-1"><a class="sidebar" href="http://sourceforge.net/tracker/?group_id=96405">Open bugs</a></font></td></tr> |
| <tr><td><font size="-1"><a class="sidebar" href="reportingBugs.html">Reporting bugs</a></font></td></tr> |
| <tr><td><font size="-1"><a class="sidebar" href="contributing.html">Contributing</a></font></td></tr> |
| <tr><td><font size="-1"><a class="sidebar" href="team.html">Dev team</a></font></td></tr> |
| <tr><td><font size="-1"><a class="sidebar" href="api/index.html">API</a> <a class="sidebar" href="api/overview-summary.html">[no frames]</a></font></td></tr> |
| <tr><td><font size="-1"><a class="sidebar" href="Changes.html">Change log</a></font></td></tr> |
| <tr><td><font size="-1"><a class="sidebar" href="http://sourceforge.net/projects/findbugs">SF project page</a></font></td></tr> |
| <tr><td><font size="-1"><a class="sidebar" href="http://code.google.com/p/findbugs/source/browse/">Browse source</a></font></td></tr> |
| <tr><td><font size="-1"><a class="sidebar" href="http://code.google.com/p/findbugs/source/list">Latest code changes</a></font></td></tr> |
| </table> |
| </td> |
| |
| <td align="left" valign="top"> |
| |
| <h1>FindBugs Performance Improvements and Regressions</h1> I did a performance check against 179 |
| benchmarks applications I regularly test against. Overall (total the total time to analyze all 179 |
| benchmarks), FindBugs 2.0 gives a 9% performance improvement over 1.3.9. 154 of the 179 benchmarks saw |
| performance improvements; 24 saw regressions. All of the benchmarks that saw regressions of more than |
| 10% were small benchmarks (analyzed in less than 60 seconds), which makes consistent benchmarking |
| particularly difficult. I'm working to repeat the benchmarks, see if the results are consistent. I took |
| a look, and couldn't find anything that stood out as being a performance glitch in FindBugs. I haven't |
| yet done benchmarking with constrained memory. It is possible that you may need to increase the heap |
| size for FindBugs 2.0. |
| |
| <h2>Important Request</h2> |
| <p> If you are seeing any significant performance regressions in FindBugs 2.0, |
| I very much need your help. Please either email <a href="mailto:findbugs@cs.umd.edu">findbugs@cs.umd.edu</a> |
| or file <a href="http://sourceforge.net/tracker/?atid=614693&group_id=96405&func=browse">a |
| bug report</a>. with the following information from the xml file for your project (from both the |
| 1.3.9 and 2.0.0 version if possible). Sending me your code or pointing me to a open source repository |
| would be great, but I know that isn't feasible for a lot of projects. The information I'm requesting |
| doesn't include any information about the code being analyzed other than the total size of the code |
| being analyzed and the total number of issues found at the different confidence levels. The |
| <FindBugsSummary ... > start tag. For example: <quote> <pre> |
| <FindBugsSummary timestamp="Tue, 30 Dec 2008 21:29:52 -0500" |
| total_classes="206" referenced_classes="325" total_bugs="72" total_size="7654" num_packages="21" |
| vm_version="20.4-b02-402" cpu_seconds="62.52" clock_seconds="22.01" |
| peak_mbytes="112.21" alloc_mbytes="1683.38" gc_seconds="1.19" |
| priority_3="56" priority_2="14" priority_1="2"> |
| </pre> </quote> The <FindBugsProfile>...</FindBugsProfile> element. For example: <quote> |
| <pre> |
| <FindBugsProfile> |
| <ClassProfile name="edu.umd.cs.findbugs.detect.IncompatMask" totalMilliseconds="11" |
| invocations="206" avgMicrosecondsPerInvocation="55" maxMicrosecondsPerInvocation="475" |
| standardDeviationMircosecondsPerInvocation="75"/> |
| <ClassProfile name="edu.umd.cs.findbugs.detect.FindFinalizeInvocations" totalMilliseconds="11" |
| invocations="206" avgMicrosecondsPerInvocation="55" maxMicrosecondsPerInvocation="402" |
| standardDeviationMircosecondsPerInvocation="69"/> |
| <ClassProfile name="edu.umd.cs.findbugs.classfile.engine.bcel.LockDataflowFactory" totalMilliseconds="11" |
| invocations="23" avgMicrosecondsPerInvocation="515" maxMicrosecondsPerInvocation="2637" |
| standardDeviationMircosecondsPerInvocation="639"/> |
| ... |
| </FindBugsProfile> |
| </pre> </quote> |
| <hr> <p> |
| <script language="JavaScript" type="text/javascript"> |
| <!---//hide script from old browsers |
| document.write( "Last updated "+ document.lastModified + "." ); |
| //end hiding contents ---> |
| </script> |
| <p> Send comments to <a class="sidebar" href="mailto:findbugs@cs.umd.edu">findbugs@cs.umd.edu</a> |
| <p> |
| <A href="http://sourceforge.net"><IMG src="http://sourceforge.net/sflogo.php?group_id=96405&type=5" width="210" height="62" border="0" alt="SourceForge.net Logo" /></A> |
| |
| </td> |
| |
| </tr> |
| </table> |
| |
| </body> |
| </html> |