
#8623: Strange slowness when using async library with FFI callbacks --------------------------------------------+------------------------------ Reporter: JohnWiegley | Owner: simonmar Type: bug | Status: new Priority: normal | Milestone: 7.8.1 Component: Runtime System | Version: 7.6.3 Resolution: | Keywords: Operating System: MacOS X | Architecture: Type of failure: Runtime performance bug | Unknown/Multiple Test Case: | Difficulty: Unknown Blocking: | Blocked By: | Related Tickets: --------------------------------------------+------------------------------ Comment (by simonmar): So I understand why this happens, but I don't have a good idea for what to do about it yet. The problem is that each call into the RTS from the C function is very short, and when it is complete. the next call creates a new thread that goes to the back of the run queue. The main thread then gets a full time slice before the new thread gets to run. You can see the effect with `+RTS -C0.1` which halves the time slice length and halves the time to run the program. The new thread goes to the back of the queue to avoid possible starvation of other threads in the queue. Somehow we want to make the new thread inherit the rest of the timeslice from the previous thread, but I need to think some more about how we can do that. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/8623#comment:7 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler