dart-lang / dart-lang/webdev

Consider a way of not sending large strings

Open
#777 0 comments 0 reactions 0 assignees View on GitHub
package:dwds type-enhancement
Dominant language
Dart
Stars
224
Forks
94
Avg merge
7h 14m
Merged PRs (30d)
2

Description

The Dart VM treats Strings as objects with an identifier. Chrome does not. So for strings we create an identifier which is just the entire string with a prefix. This makes it rather silly to send portions of a string across the VM protocol, but we can do it anyway for compatibility. The alternative would be to synthesize an ID and keep a map on the JS side, but this will almost certainly leak memory, and since we want this for large strings it might actually be significant. But it's an optimization to consider.

Contributor guide

Open the contributing guide

Research direction

Read the issue's description of Dart VM and Chrome string handling, then trace how large strings cross the VM protocol. The issue names no files, entry points, or tests; done would require an agreed compatibility-preserving approach that avoids significant memory leakage.

Written by the indexing model from the issue text.

Assessment

Tech stack
dart
Domain
backend-api-design, performance
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.