-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/7074/
-----------------------------------------------------------

(Updated Sept. 15, 2012, 11:02 p.m.)


Review request for shindig, Ryan Baxter, Dan Dumont, Stanton Sievers, and Rich 
Thompson.


Description
-------

The AllJsIframeVersioner causes a massive memory allocation executing the 
following:

StringBuilder jsBuf = new StringBuilder();
for (FeatureResource resource : registry.getAllFeatures().getResources()) {
 jsBuf.append(resource.getContent()).append(resource.getDebugContent());
 }
 this.allJsChecksum = HashUtil.checksum(jsBuf.toString().getBytes());
 
The two problems with this are:
(1) Creates a massive char[] for that string (we tested with a 4M resource)
(2) Then allocates a new byte[] for that giant string

Proposed solution is to just use a simple message digest object against each 
resource content. And concat all the bytes for HashUtil.checksum.


This addresses bug SHINDIG-1867.
    https://issues.apache.org/jira/browse/SHINDIG-1867


Diffs
-----

  
http://svn.apache.org/repos/asf/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/AllJsIframeVersioner.java
 1384320 
  
http://svn.apache.org/repos/asf/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/uri/AllJsIframeVersionerTest.java
 1384320 

Diff: https://reviews.apache.org/r/7074/diff/


Testing
-------

Done.


Thanks,

Marshall Shi

Reply via email to