Skip to content

Dioxus web page consumes a lot of memory on updating props inside use_memo #5290

@sumitftr

Description

@sumitftr

Code:

    use_memo(move || {
        if let Some(action_ref) = props.action.read().clone() {
            debug!("Processing action via use_effect: {action_ref:?}");

            match action_ref {
                // some code
            }
        }
        props.action.set(None); // After adding this line, the web page keeps consuming more and more memory
    });

After few more seconds browser replies, "The page is slowing down. To speed up, stop this page"

Steps To Reproduce

Steps to reproduce the behavior:

  • Use a Signal<Option<T>> as a props field
  • Add some context for the child components
  • Read the signal inside use_memo or use_effect
  • Update the context and then props inside use_memo or use_effect

Expected behavior

Should consume not more than 200-300 MiB

Screenshots

Image

Environment:

  • Dioxus version: 0.7.3
  • Rust version: 1.92.0
  • OS info: NixOS unstable
  • App platform: web
  • Browser: Zen Browser

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions