Compare WOFF 2.0 vs. WOFF 1.0 (instead of GZIP)
This commit is contained in:
@@ -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);
|
||||||
|
|||||||
Reference in New Issue
Block a user