You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by an...@apache.org on 2014/01/05 19:06:48 UTC
svn commit: r1555596 -
/jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/core/DatasetChangesCapture.java
Author: andy
Date: Sun Jan 5 18:06:47 2014
New Revision: 1555596
URL: http://svn.apache.org/r1555596
Log:
Switch to using a linked list for recording QuadActions due to ArrayList's copy-grow design.
Modified:
jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/core/DatasetChangesCapture.java
Modified: jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/core/DatasetChangesCapture.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/core/DatasetChangesCapture.java?rev=1555596&r1=1555595&r2=1555596&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/core/DatasetChangesCapture.java (original)
+++ jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/core/DatasetChangesCapture.java Sun Jan 5 18:06:47 2014
@@ -18,8 +18,8 @@
package com.hp.hpl.jena.sparql.core;
-import java.util.ArrayList ;
import java.util.Collections ;
+import java.util.LinkedList ;
import java.util.List ;
import org.apache.jena.atlas.lib.Pair ;
@@ -29,7 +29,14 @@ import com.hp.hpl.jena.graph.Node ;
/** Capture a record of quad actions */
public class DatasetChangesCapture implements DatasetChanges
{
- final private List<Pair<QuadAction, Quad>> actions = new ArrayList<Pair<QuadAction, Quad>>() ;
+ // ArrayLists have an annoying issue that they grow by copying the internal []-array.
+ // This growth is by a fixed factor of adding 50% which for an array
+ // with little guidance as to likely size, can lead to undesirable GC
+ // and copy-time issues.
+ // Using a LinkedList avoids this although it adds overhead for list entries.
+ final private List<Pair<QuadAction, Quad>> actions = new LinkedList<Pair<QuadAction,Quad>>() ;
+ //new ArrayList<Pair<QuadAction, Quad>>() ;
+
final private boolean captureAdd ;
final private boolean captureDelete ;
final private boolean captureNoAdd ;