Skip to content

Commit

Permalink
feat(dbg-swc): Kill creduce on drop (#6614)
Browse files Browse the repository at this point in the history
  • Loading branch information
kdy1 committed Dec 10, 2022
1 parent 3d80fa4 commit 2bf7805
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 3 deletions.
5 changes: 3 additions & 2 deletions crates/dbg-swc/src/minify/reduce.rs
Expand Up @@ -14,7 +14,7 @@ use swc_common::{SourceMap, GLOBALS};
use tempdir::TempDir;

use crate::{
util::{all_js_files, parse_js, print_js},
util::{all_js_files, parse_js, print_js, ChildGuard},
CREDUCE_INPUT_ENV_VAR, CREDUCE_MODE_ENV_VAR,
};

Expand Down Expand Up @@ -82,7 +82,8 @@ impl ReduceCommand {
let exe = current_exe()?;
c.arg(&exe);
c.arg(&input);
let status = c.status().context("failed to run creduce")?;
let mut child = ChildGuard(c.spawn().context("failed to run creduce")?);
let status = child.0.wait().context("failed to wait for creduce")?;

if status.success() {
move_to_data_dir(&input)?;
Expand Down
12 changes: 11 additions & 1 deletion crates/dbg-swc/src/util/mod.rs
@@ -1,7 +1,7 @@
use std::{
io::Write,
path::{Path, PathBuf},
process::{Command, Stdio},
process::{Child, Command, Stdio},
sync::Arc,
};

Expand Down Expand Up @@ -130,3 +130,13 @@ pub fn all_js_files(path: &Path) -> Result<Vec<PathBuf>> {
})
.with_context(|| format!("failed to get list of `.js` files in {}", path.display()))
}

pub(crate) struct ChildGuard(pub Child);

impl Drop for ChildGuard {
fn drop(&mut self) {
if let Err(e) = self.0.kill() {
eprintln!("Could not kill child process: {}", e)
}
}
}

1 comment on commit 2bf7805

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark

Benchmark suite Current: 2bf7805 Previous: 68d76af Ratio
es/full/bugs-1 296832 ns/iter (± 4023) 309500 ns/iter (± 8890) 0.96
es/full/minify/libraries/antd 1716353553 ns/iter (± 16076769) 1785622375 ns/iter (± 19421733) 0.96
es/full/minify/libraries/d3 327560562 ns/iter (± 8650693) 363193293 ns/iter (± 4015670) 0.90
es/full/minify/libraries/echarts 1431134271 ns/iter (± 28156839) 1499831082 ns/iter (± 13802456) 0.95
es/full/minify/libraries/jquery 90184955 ns/iter (± 1145776) 101008667 ns/iter (± 4769217) 0.89
es/full/minify/libraries/lodash 108141168 ns/iter (± 1588047) 117633045 ns/iter (± 2586140) 0.92
es/full/minify/libraries/moment 52542190 ns/iter (± 594651) 54831554 ns/iter (± 418798) 0.96
es/full/minify/libraries/react 19351175 ns/iter (± 196714) 21026877 ns/iter (± 439541) 0.92
es/full/minify/libraries/terser 259205727 ns/iter (± 5424376) 301450703 ns/iter (± 7505848) 0.86
es/full/minify/libraries/three 481490161 ns/iter (± 7326624) 541583696 ns/iter (± 18196176) 0.89
es/full/minify/libraries/typescript 3283681965 ns/iter (± 10944429) 3375349541 ns/iter (± 29193818) 0.97
es/full/minify/libraries/victory 695422591 ns/iter (± 26201645) 787946662 ns/iter (± 12073245) 0.88
es/full/minify/libraries/vue 132054684 ns/iter (± 1450756) 141104448 ns/iter (± 2583404) 0.94
es/full/codegen/es3 26964 ns/iter (± 209) 28072 ns/iter (± 30) 0.96
es/full/codegen/es5 27009 ns/iter (± 232) 28052 ns/iter (± 36) 0.96
es/full/codegen/es2015 26871 ns/iter (± 208) 28064 ns/iter (± 35) 0.96
es/full/codegen/es2016 26956 ns/iter (± 177) 27992 ns/iter (± 74) 0.96
es/full/codegen/es2017 26855 ns/iter (± 268) 28053 ns/iter (± 59) 0.96
es/full/codegen/es2018 26944 ns/iter (± 235) 28050 ns/iter (± 30) 0.96
es/full/codegen/es2019 26773 ns/iter (± 198) 28062 ns/iter (± 72) 0.95
es/full/codegen/es2020 26984 ns/iter (± 148) 28007 ns/iter (± 94) 0.96
es/full/all/es3 167894922 ns/iter (± 1537450) 173413469 ns/iter (± 4041070) 0.97
es/full/all/es5 161751727 ns/iter (± 2666836) 161782484 ns/iter (± 2919133) 1.00
es/full/all/es2015 120060964 ns/iter (± 802715) 123603614 ns/iter (± 2284542) 0.97
es/full/all/es2016 119653811 ns/iter (± 693924) 122558989 ns/iter (± 2378668) 0.98
es/full/all/es2017 118268733 ns/iter (± 1020463) 120027042 ns/iter (± 2390699) 0.99
es/full/all/es2018 116770773 ns/iter (± 624550) 117986125 ns/iter (± 767165) 0.99
es/full/all/es2019 115796485 ns/iter (± 1113186) 119810494 ns/iter (± 1659436) 0.97
es/full/all/es2020 111321688 ns/iter (± 809613) 114184105 ns/iter (± 1761387) 0.97
es/full/parser 521614 ns/iter (± 11841) 507390 ns/iter (± 8545) 1.03
es/full/base/fixer 21782 ns/iter (± 175) 21855 ns/iter (± 16) 1.00
es/full/base/resolver_and_hygiene 77891 ns/iter (± 157) 77488 ns/iter (± 83) 1.01
serialization of ast node 139 ns/iter (± 0) 140 ns/iter (± 0) 0.99
serialization of serde 122 ns/iter (± 0) 123 ns/iter (± 0) 0.99
css/minify/libraries/bootstrap 26835894 ns/iter (± 333214) 27510141 ns/iter (± 129780) 0.98
css/visitor/compare/clone 2082861 ns/iter (± 21612) 2101684 ns/iter (± 28773) 0.99
css/visitor/compare/visit_mut_span 2296677 ns/iter (± 18620) 2326054 ns/iter (± 33294) 0.99
css/visitor/compare/visit_mut_span_panic 2336098 ns/iter (± 18920) 2372116 ns/iter (± 30756) 0.98
css/visitor/compare/fold_span 2974304 ns/iter (± 28450) 3023661 ns/iter (± 25475) 0.98
css/visitor/compare/fold_span_panic 3162460 ns/iter (± 35693) 3228231 ns/iter (± 43716) 0.98
css/lexer/bootstrap_5_1_3 5348919 ns/iter (± 25103) 5328744 ns/iter (± 1288) 1.00
css/lexer/foundation_6_7_4 4488975 ns/iter (± 17715) 4483925 ns/iter (± 812) 1.00
css/lexer/tailwind_3_1_1 850948 ns/iter (± 7008) 845583 ns/iter (± 291) 1.01
css/parser/bootstrap_5_1_3 20742584 ns/iter (± 339370) 21629541 ns/iter (± 201053) 0.96
css/parser/foundation_6_7_4 16609238 ns/iter (± 308728) 17242871 ns/iter (± 189565) 0.96
css/parser/tailwind_3_1_1 3194584 ns/iter (± 32584) 3250759 ns/iter (± 2731) 0.98
es/codegen/colors 327112 ns/iter (± 185728) 321731 ns/iter (± 180268) 1.02
es/codegen/large 1224025 ns/iter (± 640142) 1077568 ns/iter (± 543144) 1.14
es/codegen/with-parser/colors 45894 ns/iter (± 308) 45110 ns/iter (± 66) 1.02
es/codegen/with-parser/large 501820 ns/iter (± 4415) 505000 ns/iter (± 1410) 0.99
es/minify/libraries/antd 1500527482 ns/iter (± 29685870) 1601537500 ns/iter (± 14328386) 0.94
es/minify/libraries/d3 290585028 ns/iter (± 8666602) 323646323 ns/iter (± 6703742) 0.90
es/minify/libraries/echarts 1246049819 ns/iter (± 22585739) 1322868829 ns/iter (± 21440376) 0.94
es/minify/libraries/jquery 78479007 ns/iter (± 1003676) 82878396 ns/iter (± 1473350) 0.95
es/minify/libraries/lodash 95484765 ns/iter (± 1137704) 99057116 ns/iter (± 1061789) 0.96
es/minify/libraries/moment 45831758 ns/iter (± 548141) 47459124 ns/iter (± 643574) 0.97
es/minify/libraries/react 17215168 ns/iter (± 145684) 17657755 ns/iter (± 126388) 0.97
es/minify/libraries/terser 224202434 ns/iter (± 4873898) 245979445 ns/iter (± 5819705) 0.91
es/minify/libraries/three 399399089 ns/iter (± 14725106) 429308618 ns/iter (± 11239449) 0.93
es/minify/libraries/typescript 2802558942 ns/iter (± 10930130) 2907883240 ns/iter (± 19861237) 0.96
es/minify/libraries/victory 586343293 ns/iter (± 27090092) 653518991 ns/iter (± 12362414) 0.90
es/minify/libraries/vue 118338808 ns/iter (± 2443965) 125166408 ns/iter (± 4444821) 0.95
es/visitor/compare/clone 2379850 ns/iter (± 27514) 2397529 ns/iter (± 29818) 0.99
es/visitor/compare/visit_mut_span 2749505 ns/iter (± 18278) 2899799 ns/iter (± 49079) 0.95
es/visitor/compare/visit_mut_span_panic 2815817 ns/iter (± 19861) 2984127 ns/iter (± 216880) 0.94
es/visitor/compare/fold_span 3934805 ns/iter (± 38068) 4272517 ns/iter (± 102367) 0.92
es/visitor/compare/fold_span_panic 4025965 ns/iter (± 50706) 4504484 ns/iter (± 101717) 0.89
es/lexer/colors 17280 ns/iter (± 155) 17375 ns/iter (± 35) 0.99
es/lexer/angular 8255460 ns/iter (± 53206) 8216208 ns/iter (± 5175) 1.00
es/lexer/backbone 1081418 ns/iter (± 7930) 1075085 ns/iter (± 810) 1.01
es/lexer/jquery 5951739 ns/iter (± 60010) 5941258 ns/iter (± 981) 1.00
es/lexer/jquery mobile 9239798 ns/iter (± 36040) 9153348 ns/iter (± 4000) 1.01
es/lexer/mootools 4679937 ns/iter (± 33181) 4654357 ns/iter (± 2145) 1.01
es/lexer/underscore 898946 ns/iter (± 6831) 892964 ns/iter (± 315) 1.01
es/lexer/three 27912753 ns/iter (± 237036) 27843646 ns/iter (± 32904) 1.00
es/lexer/yui 5065400 ns/iter (± 51523) 5053199 ns/iter (± 2172) 1.00
es/parser/colors 31187 ns/iter (± 314) 31573 ns/iter (± 171) 0.99
es/parser/angular 16161543 ns/iter (± 396697) 17584665 ns/iter (± 292605) 0.92
es/parser/backbone 2306272 ns/iter (± 23125) 2335748 ns/iter (± 12241) 0.99
es/parser/jquery 12516670 ns/iter (± 87519) 13109596 ns/iter (± 260793) 0.95
es/parser/jquery mobile 19803088 ns/iter (± 378210) 22639468 ns/iter (± 775850) 0.87
es/parser/mootools 9480741 ns/iter (± 103353) 9960080 ns/iter (± 86257) 0.95
es/parser/underscore 1957410 ns/iter (± 13384) 1989959 ns/iter (± 24174) 0.98
es/parser/three 58994932 ns/iter (± 1633798) 62514312 ns/iter (± 183733) 0.94
es/parser/yui 9593774 ns/iter (± 84272) 10183350 ns/iter (± 149235) 0.94
es/preset-env/usage/builtin_type 140469 ns/iter (± 32147) 138345 ns/iter (± 30163) 1.02
es/preset-env/usage/property 21056 ns/iter (± 217) 22225 ns/iter (± 75) 0.95
es/resolver/typescript 119092569 ns/iter (± 2059130) 118132506 ns/iter (± 1478479) 1.01
es/fixer/typescript 98067169 ns/iter (± 3284103) 96885795 ns/iter (± 4169814) 1.01
es/hygiene/typescript 194061343 ns/iter (± 2478598) 197849063 ns/iter (± 2548424) 0.98
es/resolver_with_hygiene/typescript 326469574 ns/iter (± 5098563) 329608152 ns/iter (± 3537702) 0.99
es/visitor/base-perf/module_clone 74844 ns/iter (± 1113) 74521 ns/iter (± 1108) 1.00
es/visitor/base-perf/fold_empty 85387 ns/iter (± 951) 85456 ns/iter (± 1590) 1.00
es/visitor/base-perf/fold_noop_impl_all 85691 ns/iter (± 1332) 86071 ns/iter (± 950) 1.00
es/visitor/base-perf/fold_noop_impl_vec 86713 ns/iter (± 931) 86714 ns/iter (± 1563) 1.00
es/visitor/base-perf/boxing_boxed_clone 53 ns/iter (± 0) 54 ns/iter (± 0) 0.98
es/visitor/base-perf/boxing_unboxed_clone 58 ns/iter (± 0) 58 ns/iter (± 0) 1
es/visitor/base-perf/boxing_boxed 101 ns/iter (± 0) 102 ns/iter (± 0) 0.99
es/visitor/base-perf/boxing_unboxed 101 ns/iter (± 0) 102 ns/iter (± 0) 0.99
es/visitor/base-perf/visit_contains_this 3510 ns/iter (± 86) 3569 ns/iter (± 49) 0.98
es/base/parallel/resolver/typescript 5478287615 ns/iter (± 236301060) 5117522878 ns/iter (± 419413850) 1.07
es/base/parallel/hygiene/typescript 2245587299 ns/iter (± 44418267) 2249103124 ns/iter (± 43087139) 1.00
misc/visitors/time-complexity/time 5 107 ns/iter (± 1) 108 ns/iter (± 0) 0.99
misc/visitors/time-complexity/time 10 360 ns/iter (± 4) 334 ns/iter (± 2) 1.08
misc/visitors/time-complexity/time 15 709 ns/iter (± 12) 680 ns/iter (± 1) 1.04
misc/visitors/time-complexity/time 20 1285 ns/iter (± 18) 1260 ns/iter (± 3) 1.02
misc/visitors/time-complexity/time 40 6799 ns/iter (± 124) 6757 ns/iter (± 19) 1.01
misc/visitors/time-complexity/time 60 17228 ns/iter (± 137) 17253 ns/iter (± 43) 1.00
es/full-target/es2016 186165 ns/iter (± 1268) 186611 ns/iter (± 353) 1.00
es/full-target/es2017 180196 ns/iter (± 1178) 180451 ns/iter (± 701) 1.00
es/full-target/es2018 169188 ns/iter (± 1197) 169235 ns/iter (± 353) 1.00
es2020_nullish_coalescing 65427 ns/iter (± 389) 65632 ns/iter (± 534) 1.00
es2020_optional_chaining 93174 ns/iter (± 798) 94230 ns/iter (± 3264) 0.99
es2022_class_properties 92521 ns/iter (± 590) 92211 ns/iter (± 162) 1.00
es2018_object_rest_spread 69446 ns/iter (± 551) 69903 ns/iter (± 121) 0.99
es2019_optional_catch_binding 59618 ns/iter (± 463) 59440 ns/iter (± 108) 1.00
es2017_async_to_generator 59476 ns/iter (± 303) 59945 ns/iter (± 107) 0.99
es2016_exponentiation 63436 ns/iter (± 226) 63393 ns/iter (± 92) 1.00
es2015_arrow 67912 ns/iter (± 577) 68274 ns/iter (± 271) 0.99
es2015_block_scoped_fn 64000 ns/iter (± 385) 64710 ns/iter (± 56) 0.99
es2015_block_scoping 150081 ns/iter (± 9028) 147155 ns/iter (± 10420) 1.02
es2015_classes 114458 ns/iter (± 624) 115268 ns/iter (± 502) 0.99
es2015_computed_props 59511 ns/iter (± 543) 59661 ns/iter (± 148) 1.00
es2015_destructuring 114697 ns/iter (± 646) 114739 ns/iter (± 235) 1.00
es2015_duplicate_keys 62183 ns/iter (± 545) 62664 ns/iter (± 109) 0.99
es2015_parameters 77538 ns/iter (± 487) 77775 ns/iter (± 196) 1.00
es2015_fn_name 65535 ns/iter (± 597) 66046 ns/iter (± 668) 0.99
es2015_for_of 62107 ns/iter (± 529) 63035 ns/iter (± 100) 0.99
es2015_instanceof 61114 ns/iter (± 526) 61479 ns/iter (± 87) 0.99
es2015_shorthand_property 58970 ns/iter (± 700) 59949 ns/iter (± 151) 0.98
es2015_spread 59614 ns/iter (± 471) 59402 ns/iter (± 116) 1.00
es2015_sticky_regex 60875 ns/iter (± 318) 60862 ns/iter (± 117) 1.00
es2015_typeof_symbol 60874 ns/iter (± 510) 60999 ns/iter (± 80) 1.00
es/transform/baseline/base 50095 ns/iter (± 421) 50560 ns/iter (± 126) 0.99
es/transform/baseline/common_reserved_word 61452 ns/iter (± 177) 61196 ns/iter (± 130) 1.00
es/transform/baseline/common_typescript 166055 ns/iter (± 2538) 167942 ns/iter (± 315) 0.99
es/target/es3 165633 ns/iter (± 1162) 166917 ns/iter (± 316) 0.99
es/target/es2015 624262 ns/iter (± 3260) 627843 ns/iter (± 1156) 0.99
es/target/es2016 63469 ns/iter (± 325) 63554 ns/iter (± 99) 1.00
es/target/es2017 59952 ns/iter (± 407) 60144 ns/iter (± 72) 1.00
es/target/es2018 79721 ns/iter (± 851) 79923 ns/iter (± 79) 1.00
es/target/es2020 131273 ns/iter (± 822) 130809 ns/iter (± 170) 1.00
babelify-only 662692 ns/iter (± 5807) 675258 ns/iter (± 2132) 0.98
parse_and_babelify_angular 42549324 ns/iter (± 821971) 42947157 ns/iter (± 614219) 0.99
parse_and_babelify_backbone 5319366 ns/iter (± 67920) 5759263 ns/iter (± 212817) 0.92
parse_and_babelify_jquery 32320164 ns/iter (± 707035) 35307489 ns/iter (± 1046612) 0.92
parse_and_babelify_jquery_mobile 56630023 ns/iter (± 962040) 60095423 ns/iter (± 1067014) 0.94
parse_and_babelify_mootools 34682362 ns/iter (± 839465) 35816031 ns/iter (± 833065) 0.97
parse_and_babelify_underscore 4293233 ns/iter (± 30207) 4365319 ns/iter (± 113785) 0.98
parse_and_babelify_yui 33776513 ns/iter (± 537958) 34457571 ns/iter (± 335326) 0.98
html/minify/document/css_spec 43468961 ns/iter (± 816980) 44819001 ns/iter (± 706270) 0.97
html/minify/document/github 18320786 ns/iter (± 168972) 18717011 ns/iter (± 80708) 0.98
html/minify/document/stackoverflow 16005908 ns/iter (± 208288) 16491200 ns/iter (± 68855) 0.97
html/minify/document_fragment/css_spec 40823681 ns/iter (± 746690) 43198065 ns/iter (± 562121) 0.95
html/minify/document_fragment/github 17746989 ns/iter (± 139079) 18073932 ns/iter (± 135280) 0.98
html/minify/document_fragment/stackoverflow 15672509 ns/iter (± 168390) 15951259 ns/iter (± 101112) 0.98
html/document/visitor/compare/clone 341519 ns/iter (± 3201) 343243 ns/iter (± 1503) 0.99
html/document/visitor/compare/visit_mut_span 364361 ns/iter (± 2342) 367020 ns/iter (± 2235) 0.99
html/document/visitor/compare/visit_mut_span_panic 373233 ns/iter (± 3603) 379154 ns/iter (± 2553) 0.98
html/document/visitor/compare/fold_span 399073 ns/iter (± 2959) 411413 ns/iter (± 1870) 0.97
html/document/visitor/compare/fold_span_panic 458838 ns/iter (± 4365) 459845 ns/iter (± 1811) 1.00
html/document_fragment/visitor/compare/clone 332419 ns/iter (± 3075) 340046 ns/iter (± 2856) 0.98
html/document_fragment/visitor/compare/visit_mut_span 367344 ns/iter (± 2754) 366351 ns/iter (± 1358) 1.00
html/document_fragment/visitor/compare/visit_mut_span_panic 368594 ns/iter (± 3504) 373514 ns/iter (± 1911) 0.99
html/document_fragment/visitor/compare/fold_span 403859 ns/iter (± 4430) 407876 ns/iter (± 2240) 0.99
html/document_fragment/visitor/compare/fold_span_panic 455922 ns/iter (± 4171) 459955 ns/iter (± 2586) 0.99
html/lexer/css_2021_spec 15496162 ns/iter (± 65789) 15670413 ns/iter (± 8131) 0.99
html/lexer/github_com_17_05_2022 6035600 ns/iter (± 35254) 6070654 ns/iter (± 3653) 0.99
html/lexer/stackoverflow_com_17_05_2022 5617151 ns/iter (± 27386) 5683620 ns/iter (± 1851) 0.99
html/parser/parser_document/css_2021_spec 25692236 ns/iter (± 495037) 26941820 ns/iter (± 333539) 0.95
html/parser/parser_document/github_com_17_05_2022 8719579 ns/iter (± 60042) 8828463 ns/iter (± 10813) 0.99
html/parser/parser_document/stackoverflow_com_17_05_2022 7714926 ns/iter (± 59716) 7782835 ns/iter (± 6572) 0.99
html/parser/parser_document_fragment/css_2021_spec 25425651 ns/iter (± 349878) 26978025 ns/iter (± 276128) 0.94
html/parser/parser_document_fragment/github_com_17_05_2022 8734426 ns/iter (± 76689) 8817954 ns/iter (± 31058) 0.99
html/parser/parser_document_fragment/stackoverflow_com_17_05_2022 7707978 ns/iter (± 66502) 7800908 ns/iter (± 5681) 0.99

This comment was automatically generated by workflow using github-action-benchmark.

Please sign in to comment.