Skip to content

nicholasbishop/rust146hang

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

rust146hang

Increasingly slow compilation as more levels of async are added

This is a somewhat minimal testcase extracted from a crate I'm working on. I was using Rust 1.45 and it compiled in a reasonable amount of time, then I upgraded to Rust 1.46 and suddenly compilation seemed to hang forever. Based on this more minimal test case I'm guessing it's not actually hanging forever, just taking a very long time.

I've found that the slowness seems tied to the depth of the async call chain. In the example code I have a long call chain: handle_req_1 is called by handle_req_2 is called by handle_req_3, etc. Here's the compilation timing I've observed when changing handle_req_final to directly call one of the handle_req_N functions:

handle_req_1 -> 0m12s
handle_req_2 -> 0m28s
handle_req_3 -> 1m06s
handle_req_4 -> 2m18s
handle_req_5 -> 5m01s

These times only include building the rust146hang lib, not the dependencies.

(Caveat: unscientific timings, these are not averaged over multiple runs or anything.)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages