Skip to content

Commit

Permalink
feat: Improve benchmark script (#6)
Browse files Browse the repository at this point in the history
  • Loading branch information
ardalanamini authored Jul 25, 2022
1 parent b3a241a commit c3c7f82
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 18 deletions.
34 changes: 18 additions & 16 deletions benchmarks/README.md
Original file line number Diff line number Diff line change
@@ -1,20 +1,22 @@
# Benchmarks

```shell
╔═══════════════════════════╤═══════════════════════════╤═══════════════════════════╤═══════════════════════════╗
║ CSS File │ Original Size │ Renamed Size │ Improvement ║
╟───────────────────────────┼───────────────────────────┼───────────────────────────┼───────────────────────────╢
║ antd-v4.21.7 │ 709.411 KB │ 546.281 KB │ 22.995% ║
╟───────────────────────────┼───────────────────────────┼───────────────────────────┼───────────────────────────╢
║ antd-v4.21.7.min │ 545.281 KB │ 382.627 KB │ 29.829% ║
╟───────────────────────────┼───────────────────────────┼───────────────────────────┼───────────────────────────╢
║ bootstrap-v5.2.0-beta1 │ 231.991 KB │ 173.111 KB │ 25.38% ║
╟───────────────────────────┼───────────────────────────┼───────────────────────────┼───────────────────────────╢
║ bootstrap-v5.2.0-beta1.mi │ 188.949 KB │ 130.069 KB │ 31.162% ║
║ n │ │ │ ║
╟───────────────────────────┼───────────────────────────┼───────────────────────────┼───────────────────────────╢
║ materialize-v1.0.0 │ 175.044 KB │ 147.266 KB │ 15.869% ║
╟───────────────────────────┼───────────────────────────┼───────────────────────────┼───────────────────────────╢
║ materialize-v1.0.0.min │ 138.517 KB │ 110.738 KB │ 20.054% ║
╚═══════════════════════════╧═══════════════════════════╧═══════════════════════════╧═══════════════════════════╝
╔══════════════════════╤══════════════════════╤══════════════════════╤══════════════════════╤══════════════════════╗
║ CSS File │ Original Size │ Renamed Size │ Improvement │ Overall Improvement ║
╟──────────────────────┼──────────────────────┼──────────────────────┼──────────────────────┼──────────────────────╢
║ antd-v4.21.7 │ 709.411 KB │ 546.281 KB │ 22.995% │ 22.995% ║
╟──────────────────────┼──────────────────────┼──────────────────────┼──────────────────────┼──────────────────────╢
║ antd-v4.21.7.min │ 545.281 KB │ 382.627 KB │ 29.829% │ 46.064% ║
╟──────────────────────┼──────────────────────┼──────────────────────┼──────────────────────┼──────────────────────╢
║ bootstrap-v5.2.0-bet │ 231.991 KB │ 173.111 KB │ 25.38% │ 25.38% ║
║ a1 │ │ │ │ ║
╟──────────────────────┼──────────────────────┼──────────────────────┼──────────────────────┼──────────────────────╢
║ bootstrap-v5.2.0-bet │ 188.949 KB │ 130.069 KB │ 31.162% │ 43.934% ║
║ a1.min │ │ │ │ ║
╟──────────────────────┼──────────────────────┼──────────────────────┼──────────────────────┼──────────────────────╢
║ materialize-v1.0.0 │ 175.044 KB │ 147.266 KB │ 15.869% │ 15.869% ║
╟──────────────────────┼──────────────────────┼──────────────────────┼──────────────────────┼──────────────────────╢
║ materialize-v1.0.0.m │ 138.517 KB │ 110.738 KB │ 20.054% │ 36.737% ║
in │ │ │ │ ║
╚══════════════════════╧══════════════════════╧══════════════════════╧══════════════════════╧══════════════════════╝
```
18 changes: 16 additions & 2 deletions scripts/benchmark.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,18 +17,21 @@ const files = readdirSync(DIR).filter(file => file.endsWith(".css"));
const stream = createStream({
columnDefault: {
alignment: "center",
width : 25,
width : 20,
},
columnCount: 4,
columnCount: 5,
});

stream.write([
"CSS File",
"Original Size",
"Renamed Size",
"Improvement",
"Overall Improvement",
]);

const FILE_SIZE = new Map<string, number>;

async function benchmark(): Promise<void> {
for (const file of files) {
const from = resolve(DIR, file);
Expand All @@ -37,6 +40,10 @@ async function benchmark(): Promise<void> {

const originalSize = Buffer.byteLength(css);

const key = file.replace(/(?:\.min)?\.css$/, "");

if (!file.endsWith(".min.css")) FILE_SIZE.set(key, originalSize);

// eslint-disable-next-line no-await-in-loop
const result = await postcss([minicss()]).process(
css,
Expand All @@ -48,6 +55,9 @@ async function benchmark(): Promise<void> {

const renamedSize = Buffer.byteLength(result.css);

// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
const baseSize = FILE_SIZE.get(key)!;

stream.write([
file.replace(/\.css$/, ""),
`${ (originalSize / KB).toLocaleString("en-US", { maximumFractionDigits: 3 }) } KB`,
Expand All @@ -56,6 +66,10 @@ async function benchmark(): Promise<void> {
style : "percent",
maximumFractionDigits: 3,
}),
((baseSize - renamedSize) / baseSize).toLocaleString("en-US", {
style : "percent",
maximumFractionDigits: 3,
}),
]);
}
}
Expand Down

0 comments on commit c3c7f82

Please sign in to comment.