diff --git a/gitiles-servlet/src/main/java/com/google/gitiles/CommitSoyData.java b/gitiles-servlet/src/main/java/com/google/gitiles/CommitSoyData.java
index 733da0a..9e5a9fe 100644
--- a/gitiles-servlet/src/main/java/com/google/gitiles/CommitSoyData.java
+++ b/gitiles-servlet/src/main/java/com/google/gitiles/CommitSoyData.java
@@ -56,6 +56,7 @@
 
   private Linkifier linkifier;
   private RevWalk walk;
+  private CommitData.Builder cdb;
   private ArchiveFormat archiveFormat;
 
   CommitSoyData setLinkifier(@Nullable Linkifier linkifier) {
@@ -76,7 +77,11 @@
   Map<String, Object> toSoyData(HttpServletRequest req, RevCommit c, Set<Field> fs,
       DateFormatter df) throws IOException {
     GitilesView view = ViewFilter.getView(req);
-    CommitData cd = new CommitData.Builder()
+    if (cdb == null) {
+      cdb = new CommitData.Builder();
+    }
+
+    CommitData cd = cdb
         .setRevWalk(walk)
         .setArchiveFormat(archiveFormat)
         .build(req, c, fs);
diff --git a/gitiles-servlet/src/main/java/com/google/gitiles/LogSoyData.java b/gitiles-servlet/src/main/java/com/google/gitiles/LogSoyData.java
index 244bbc8..0508561 100644
--- a/gitiles-servlet/src/main/java/com/google/gitiles/LogSoyData.java
+++ b/gitiles-servlet/src/main/java/com/google/gitiles/LogSoyData.java
@@ -47,6 +47,7 @@
   private final Set<Field> fields;
   private final String pretty;
   private final String variant;
+  private CommitSoyData csd;
 
   public LogSoyData(HttpServletRequest req, GitilesAccess access, String pretty)
       throws IOException {
@@ -97,7 +98,11 @@
 
   private Map<String, Object> toEntrySoyData(Paginator paginator, RevCommit c, DateFormatter df,
       boolean first) throws IOException {
-    Map<String, Object> entry = new CommitSoyData().setRevWalk(paginator.getWalk())
+    if (csd == null) {
+      csd = new CommitSoyData();
+    }
+
+    Map<String, Object> entry = csd.setRevWalk(paginator.getWalk())
         .toSoyData(req, c, fields, df);
     return ImmutableMap.of(
         "firstWithPrevious", first && paginator.getPreviousStart() != null,
