mirror of
https://github.com/denoland/deno.git
synced 2024-11-21 15:04:11 -05:00
perf(windows): delay load webgpu and some other dlls (#26917)
Before: ~100ms, After: ~40ms for a hello world Closes https://github.com/denoland/deno/issues/26914
This commit is contained in:
parent
dd4570ed85
commit
19bbf83e47
1 changed files with 18 additions and 0 deletions
18
cli/build.rs
18
cli/build.rs
|
@ -400,6 +400,24 @@ fn main() {
|
||||||
println!("cargo:rustc-env=TARGET={}", env::var("TARGET").unwrap());
|
println!("cargo:rustc-env=TARGET={}", env::var("TARGET").unwrap());
|
||||||
println!("cargo:rustc-env=PROFILE={}", env::var("PROFILE").unwrap());
|
println!("cargo:rustc-env=PROFILE={}", env::var("PROFILE").unwrap());
|
||||||
|
|
||||||
|
if cfg!(windows) {
|
||||||
|
// these dls load slowly, so delay loading them
|
||||||
|
let dlls = [
|
||||||
|
// webgpu
|
||||||
|
"d3dcompiler_47",
|
||||||
|
"OPENGL32",
|
||||||
|
// network related functions
|
||||||
|
"iphlpapi",
|
||||||
|
];
|
||||||
|
for dll in dlls {
|
||||||
|
println!("cargo:rustc-link-arg-bin=deno=/delayload:{dll}.dll");
|
||||||
|
println!("cargo:rustc-link-arg-bin=denort=/delayload:{dll}.dll");
|
||||||
|
}
|
||||||
|
// enable delay loading
|
||||||
|
println!("cargo:rustc-link-arg-bin=deno=delayimp.lib");
|
||||||
|
println!("cargo:rustc-link-arg-bin=denort=delayimp.lib");
|
||||||
|
}
|
||||||
|
|
||||||
let c = PathBuf::from(env::var_os("CARGO_MANIFEST_DIR").unwrap());
|
let c = PathBuf::from(env::var_os("CARGO_MANIFEST_DIR").unwrap());
|
||||||
let o = PathBuf::from(env::var_os("OUT_DIR").unwrap());
|
let o = PathBuf::from(env::var_os("OUT_DIR").unwrap());
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue