Compare WOFF 2.0 vs. WOFF 1.0 (instead of GZIP)

This commit is contained in:
David Kuettel
2013-05-28 16:22:52 -07:00
parent c34a8fce98
commit 76b55053e7
3 changed files with 9 additions and 9 deletions
@@ -15,7 +15,7 @@ import java.util.Map;
*/ */
public class CompressionStats { public class CompressionStats {
public enum Size { ORIGINAL, GZIP, WOFF2 } public enum Size { ORIGINAL, GZIP, WOFF, WOFF2 }
private final List<Stats> values = Lists.newArrayList(); private final List<Stats> values = Lists.newArrayList();
@@ -17,14 +17,14 @@ public class CsvReport {
public static void create(CompressionStats stats, String filename) throws IOException { public static void create(CompressionStats stats, String filename) throws IOException {
PrintWriter writer = new PrintWriter(new BufferedWriter(new FileWriter(filename))); PrintWriter writer = new PrintWriter(new BufferedWriter(new FileWriter(filename)));
try { try {
writer.printf("'Font', 'Original (bytes)', 'GZIP (bytes)', 'WOFF 2.0 (bytes)', '%% Improvement'\n"); writer.printf("Font, Original (bytes), WOFF 1.0 (bytes), WOFF 2.0 (bytes), %% Improvement\n");
for (CompressionStats.Stats stat : stats.values()) { for (CompressionStats.Stats stat : stats.values()) {
writer.printf("%s, %d, %d, %d, %.2f%%\n", writer.printf("%s, %d, %d, %d, %.2f%%\n",
stat.getFilename(), stat.getFilename(),
stat.getSize(CompressionStats.Size.ORIGINAL), stat.getSize(CompressionStats.Size.ORIGINAL),
stat.getSize(CompressionStats.Size.GZIP), stat.getSize(CompressionStats.Size.WOFF),
stat.getSize(CompressionStats.Size.WOFF2), stat.getSize(CompressionStats.Size.WOFF2),
stat.getPercent(CompressionStats.Size.GZIP, CompressionStats.Size.WOFF2)); stat.getPercent(CompressionStats.Size.WOFF, CompressionStats.Size.WOFF2));
} }
} finally { } finally {
Closeables.closeQuietly(writer); Closeables.closeQuietly(writer);
@@ -19,7 +19,7 @@ public class SimpleRunner {
private static final FontFactory FONT_FACTORY = FontFactory.getInstance(); private static final FontFactory FONT_FACTORY = FontFactory.getInstance();
private static final String GZIP = "gzip"; private static final String WOFF = "woff";
private static final String WOFF2 = "woff2/lzma"; private static final String WOFF2 = "woff2/lzma";
private static final String TRUETYPE = "glyf/cbbox,triplet,code,reslice"; private static final String TRUETYPE = "glyf/cbbox,triplet,code,reslice";
@@ -47,13 +47,13 @@ public class SimpleRunner {
byte[] bytes = Files.toByteArray(file); byte[] bytes = Files.toByteArray(file);
Font font = FONT_FACTORY.loadFonts(bytes)[0]; Font font = FONT_FACTORY.loadFonts(bytes)[0];
byte[] gzip = Experiment.run(font, GZIP); byte[] woff = Experiment.run(font, WOFF);
byte[] woff2 = Experiment.run(font, getOptions(font)); byte[] woff2 = Experiment.run(font, getOptions(font));
CompressionStats.Stats stat = CompressionStats.Stats.builder() CompressionStats.Stats stat = CompressionStats.Stats.builder()
.setFilename(file.getName()) .setFilename(file.getName())
.setSize(CompressionStats.Size.ORIGINAL, bytes.length) .setSize(CompressionStats.Size.ORIGINAL, bytes.length)
.setSize(CompressionStats.Size.GZIP, gzip.length) .setSize(CompressionStats.Size.WOFF, woff.length)
.setSize(CompressionStats.Size.WOFF2, woff2.length) .setSize(CompressionStats.Size.WOFF2, woff2.length)
.build(); .build();
stats.add(stat); stats.add(stat);
@@ -61,9 +61,9 @@ public class SimpleRunner {
System.out.printf("> %s, %d, %d, %d, %.2f%%\n", System.out.printf("> %s, %d, %d, %d, %.2f%%\n",
stat.getFilename(), stat.getFilename(),
stat.getSize(CompressionStats.Size.ORIGINAL), stat.getSize(CompressionStats.Size.ORIGINAL),
stat.getSize(CompressionStats.Size.GZIP), stat.getSize(CompressionStats.Size.WOFF),
stat.getSize(CompressionStats.Size.WOFF2), stat.getSize(CompressionStats.Size.WOFF2),
stat.getPercent(CompressionStats.Size.GZIP, CompressionStats.Size.WOFF2)); stat.getPercent(CompressionStats.Size.WOFF, CompressionStats.Size.WOFF2));
} catch (Throwable t) { } catch (Throwable t) {
System.err.printf("WARNING: failed to compress: %s\n", filename); System.err.printf("WARNING: failed to compress: %s\n", filename);