racket / racket/drracket

DrRacket non-responsive after generating complex picts using Rhombus

Open
#728 21 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Racket
Stars
516
Forks
103
PR merge metrics
No merged PRs in 30d

Description

  1. Clone https://github.com/awsalmah/Y390 (at db5af715170ca79d184f190b273de5d29a65058e)
  2. Open https://github.com/awsalmah/Y390/blob/db5af715170ca79d184f190b273de5d29a65058e/11.%20ps11/ps11.rhm in DrRacket (tested on Mac and Linux and Windows)
  3. Run the file.
  4. Run draw_trip(generate_koch(100),turtle(40,100,0),empty_scene(200,200)) in the Interactions window
  5. Note that it takes quite a while, and after the image is printed it take a long time for the prompt to appear.
  6. DrRacket becomes highly non-responsive (to clicks, it's slow to run subsequent expressions in the Interactions Window) and this persists over time.

A few notes:

  1. Similar picts constructed in Racket with 2htdp/image do not have this behavior
  2. Minimizing the file to a single Rhombus file with just the relevant pict do not seem to have this behavior.
  3. Running the same things in racket-mode in Emacs does not seem to have this behavior.
  4. Memory usage becomes very high during this experiment (750 MB -> 1350 MB or more)
  5. Closing all tabs with #lang rhombus and clicking the GC button causes memory usage to revert to the previous level.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by cloning Y390 at db5af715170ca79d184f190b273de5d29a65058e, opening 11. ps11/ps11.rhm in DrRacket, and reproducing the draw_trip call in the Interactions window. Compare the behavior with the noted 2htdp/image and racket-mode cases, while observing memory usage and responsiveness. Done means identifying and addressing the cause of the slowdown and confirming normal interaction after the expression runs.

Written by the indexing model from the issue text.

Assessment

Domain
desktop, developer-experience, performance
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.