Skip to content

Update recommended upper and lower bounds #50

Description

@tomayac

The spec currently says:

NOTE: While implementations may choose different values, the recommended upper bound is 8GiB and the recommended lower bound is 0.25GiB (or 256MiB).

8GiB is the bare minimum for many AI applications, so knowing if a device has actually just 8GiB of RAM or more makes a huge difference. The meaningful values I heard when discussing this with engineering were 16, 32, and 64 GiB.

The current lower bound of 0.25GiB has become a tracking vector in itself. It would likely make sense to adjust to 2GiB as the lower bound as even low-end devices have caught up.

Activity

  1. tunetheweb commented on Jan 7, 2026

    @tunetheweb
    Member

    16GiB+ is still rare on mobile.
    64GiB also still seems rare enough on desktop.

    I wonder should be have separate limits for mobile (2GiB-8GiB) and desktop (2GiB-32GiB) because of that? Or would that be more confusing/limiting?

    However, when this API was first launched, 8GiB was probably as rare on mobile so maybe going to 16 (or even 32) on mobile is no worse off than it was then (and certainly no worse off than 0.25GiB and 0.5GiB is now).

  2. mmocny commented on Jan 7, 2026

    @mmocny

    Does the spec need to enumerate the list of supported values? Could we not just define that the values are powers of 2, with a specified minimum value but no maximum? (and specific implementations could under-report if they find some reason to)

  3. tunetheweb commented on Jan 7, 2026

    @tunetheweb
    Member

    The spec currently doesn't "define" them, but does give recommendations:

    An upper bound and a lower bound should be set on the list of values.

    NOTE: While implementations may choose different values, the recommended upper bound is 8GiB and the recommended lower bound is 0.25GiB (or 256MiB).

    So I guess there's two questions here:

    1. Should we update/remove those recommendations?
    2. What should Chromium (the only current implementor) use as max and min? Which kinda depends on 1.
  4. mmocny commented on Jan 7, 2026

    @mmocny

    (FYI the Examples section also specifically says "A full list of possible values should be as follows: 0.25, 0.5, 1, 2, 4, 8")

    I guess you need some upper/lower bound to merge small population of users together and not enable fingerprinting. Ideally that would come from a dynamic usage stat, but I guess just leaving the spec wording and updating the NOTE periodically, works?

  5. guohuideng2024 commented on Jan 8, 2026

    @guohuideng2024
    Member

    I am planning to update the spec, giving rational and guidance on how the upper and lower bounds should be adjusted/decided as the memory on the device increase over time.

    I think we can keep the restriction that the value must be a subset of {0.25 x 2^n} (because it has been there before and there is nothing wrong with it.

  6. tunetheweb commented on Jan 15, 2026

    @tunetheweb
    Member

    Discussed in WebPerfWG on 15th Jan 2026 and agreed to update spec to make this implementor specific.

    Will close this with #53

    @tomayac could you raise a crbug for the Chrome implementation side now that the spec issues is resolved (or at least agreed and will be updated soon!).

  7. tomayac commented on Jan 16, 2026

    @tomayac
    ContributorAuthor

    @tomayac could you raise a crbug for the Chrome implementation side now that the spec issues is resolved (or at least agreed and will be updated soon!).

    We have https://crbug.com/454354290 already. I just made the bug thread aware of the spec change.

  8. tunetheweb commented on Jan 23, 2026

    @tunetheweb
    Member

    This change will be included in Chrome 146: https://chromestatus.com/feature/6330376953921536

    Set a new set of possible values for the Device Memory API:

    • Android: 2, 4, 8
    • Others: 2, 4, 8, 16, 32

    Replacing the old values of 0.25, 0.5, 1, 2, 4, 8 which have grown outdated.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

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