Closed Bug 1832841 Opened 3 years ago Closed 3 years ago

Improve performance of RemoteValue serialization and deserialization

Categories

(Remote Protocol :: WebDriver BiDi, enhancement)

enhancement

Tracking

(Not tracked)

RESOLVED INVALID

People

(Reporter: whimboo, Unassigned)

References

(Blocks 1 open bug)

Details

(Keywords: perf)

For my patches upcoming on bug 1830884 and bug 1822466 Julian did some performance checks and noticed a couple of performance regressions:

Serialize:

Code:

{ target: { context: "42d7a174-b85c-4354-954d-128bba53e5c6"}, awaitPromise: false, expression: "var n = document.querySelector('div');\n var a = [];\n for (var i = 0; i < 10000; i++) {a.push(n)}\n a" }

Results:

Deserialize:

Code:

    const args = [];
    for (var i = 0; i < 10000; i++) {
      args.push({ "type": "node", "sharedId": "bf108805-c4fd-4fa2-a0e5-6e99f9177743"});
    }
    await sendCommand("script.callFunction", {
      target: { context },
      awaitPromise: false,
      functionDeclaration: "(a) => console.log(a)",
      arguments: args
    });

Results:

I can already see a couple of places where we can have improvements so I will try to get to it next week.

Both patches for bug 1830884 and bug 1822466 got backed out. For the next landing we will take care of good performance so I'm going to close this bug.

Status: NEW → RESOLVED
Closed: 3 years ago
Resolution: --- → INVALID
You need to log in before you can comment on or make changes to this bug.