jmeter-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From pmoua...@apache.org
Subject svn commit: r1451926 - /jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/parser/RegexpHTMLParser.java
Date Sat, 02 Mar 2013 19:45:22 GMT
Author: pmouawad
Date: Sat Mar  2 19:45:22 2013
New Revision: 1451926

URL: http://svn.apache.org/r1451926
Log:
Bug 54268 - Improve CPU and memory usage
Bugzilla Id: 54268

Modified:
    jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/parser/RegexpHTMLParser.java

Modified: jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/parser/RegexpHTMLParser.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/parser/RegexpHTMLParser.java?rev=1451926&r1=1451925&r2=1451926&view=diff
==============================================================================
--- jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/parser/RegexpHTMLParser.java
(original)
+++ jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/parser/RegexpHTMLParser.java
Sat Mar  2 19:45:22 2013
@@ -27,11 +27,6 @@ import org.apache.jmeter.protocol.http.u
 import org.apache.jmeter.util.JMeterUtils;
 import org.apache.jorphan.logging.LoggingManager;
 import org.apache.log.Logger;
-
-// NOTE: Also looked at using Java 1.4 regexp instead of ORO. The change was
-// trivial. Performance did not improve -- at least not significantly.
-// Finally decided for ORO following advise from Stefan Bodewig (message
-// to jmeter-dev dated 25 Nov 2003 8:52 CET) [Jordi]
 import org.apache.oro.text.MalformedCachePatternException;
 import org.apache.oro.text.regex.MatchResult;
 import org.apache.oro.text.regex.Pattern;
@@ -146,15 +141,16 @@ class RegexpHTMLParser extends HTMLParse
      */
     @Override
     public Iterator<URL> getEmbeddedResourceURLs(byte[] html, URL baseUrl, URLCollection
urls, String encoding) throws HTMLParseException {
-
+        Pattern pattern= null;
+        Perl5Matcher matcher = null;
         try {
-			Perl5Matcher matcher = JMeterUtils.getMatcher();
+            matcher = JMeterUtils.getMatcher();
 			PatternMatcherInput input = localInput.get();
 			// TODO: find a way to avoid the cost of creating a String here --
 			// probably a new PatternMatcherInput working on a byte[] would do
 			// better.
 			input.setInput(new String(html, encoding)); 
-			Pattern pattern=JMeterUtils.getPatternCache().getPattern(
+			pattern=JMeterUtils.getPatternCache().getPattern(
 			        REGEXP,
 			        Perl5Compiler.CASE_INSENSITIVE_MASK
 			        | Perl5Compiler.SINGLELINE_MASK
@@ -199,6 +195,8 @@ class RegexpHTMLParser extends HTMLParse
 			throw new HTMLParseException(e.getMessage(), e);
 		} catch (MalformedCachePatternException e) {
 			throw new HTMLParseException(e.getMessage(), e);
-		}
+		} finally {
+            JMeterUtils.clearMatcherMemory(matcher, pattern);
+        }
     }
 }



Mime
View raw message