Performance

Measured, release over release.

These charts follow the 20 paths that every release's comparison has measured since 1.12.0, as time relative to 1.12.0. Lower is faster. Point at a chart, or tab to it, to read each release's value. The table under each chart lists every measured value.

How it is measured

Each release's notes compare it with the release before it on the development laptop, a Lenovo Legion Pro 7 16AFR10H, with diagnostic logging off and both builds measured in the same session. A chart multiplies those comparisons from 1.12.0 on, so the 2.1.0 point is 2.0.0's ratio to 1.12.0, times 2.0.1's ratio to 2.0.0, times 2.0.2's ratio to 2.0.1, times 2.1.0's ratio to 2.0.3. Each ratio compares medians.

  • 1.12.0 to 2.0.0: 30 runs per build, the two builds one after the other for each path.
  • 2.0.0 to 2.0.1: 30 runs per build in each of two passes, with the order of the builds flipped between passes, three passes for start, create and Dispose, and six for the per-call rows.
  • 2.0.1 to 2.0.2: 30 runs per build in each of two passes, with the order of the builds flipped between passes, three passes for start, create and Dispose, and eight rounds alternating the builds for the per-call rows.
  • 2.0.3 to 2.1.0: six rounds alternating the two builds in one session, each round installing each build's driver once for the device paths. 2.0.3 changed only the full removal's usbip-win2 step, which no charted path runs, so this step continues from the 2.0.2 point.

Values from different sessions never meet in one ratio. Between two sessions, the same release has measured up to 31 percent apart on a per-call SubmitState row and 86 percent apart on a few-millisecond USB/IP row. Within one session, rows measured in two passes have moved several percent from one pass to the next, so a step of a few percent is within that spread.

From 2.1.0 on, a release's notes read a path faster only when every round of a session read it faster and either a second session agreed or a change had named the path as its target before the measurement. They read it slower only when a second session agreed. A chart moves only where the notes read the median faster or slower. Any other step is plotted flat, and the table under the chart keeps its measured values.

Start and create

Process start to the first controller, DualShock 4

76% of 1.12.0's time

Measured values, in ms
StepBeforeAfterChange
1.12.0 to 2.0.0724.6824.8552.6653.0-23.7%
2.0.0 to 2.0.1520.5652.4515.3668.4-1.0%
2.0.1 to 2.0.2526.0692.6527.3688.5+0.2%
2.0.3 to 2.1.0524.0666.3520.3646.2-0.7%, level at the median, plotted flat

Medians, with the 95th percentile under each. A step whose median its release's notes read level is plotted flat.

CreateController, DualShock 4

47% of 1.12.0's time

Measured values, in ms
StepBeforeAfterChange
1.12.0 to 2.0.0467.1523.1217.3302.2-53.5%
2.0.0 to 2.0.1213.4337.6219.2361.7+2.7%
2.0.1 to 2.0.2213.5390.1211.5399.5-0.9%
2.0.3 to 2.1.0221.6314.4212.6299.3-4.1%, level at the median, plotted flat

Medians, with the 95th percentile under each. A step whose median its release's notes read level is plotted flat.

CreateController, Xbox 360

43% of 1.12.0's time

Measured values, in ms
StepBeforeAfterChange
1.12.0 to 2.0.0673.5829.4357.8421.5-46.9%
2.0.0 to 2.0.1440.6756.1355.1672.9-19.4%
2.0.1 to 2.0.2357.9757.7363.5567.1+1.6%
2.0.3 to 2.1.0478.5672.6460.4664.6-3.8%, level at the median, plotted flat

Medians, with the 95th percentile under each. A step whose median its release's notes read level is plotted flat.

CreateController, DualSense over USB/IP

76% of 1.12.0's time

Measured values, in ms
StepBeforeAfterChange
1.12.0 to 2.0.04.37.63.615.1-16.3%
2.0.0 to 2.0.12.43.82.55.2+4.2%
2.0.1 to 2.0.23.94.73.44.4-12.8%
2.0.3 to 2.1.02.63.82.12.8-19.2%, level at the median, plotted flat

Medians, with the 95th percentile under each. A step whose median its release's notes read level is plotted flat.

Removal

Dispose, DualShock 4

81% of 1.12.0's time

Measured values, in ms
StepBeforeAfterChange
1.12.0 to 2.0.072.583.559.479.1-18.1%
2.0.0 to 2.0.152.459.552.057.5-0.8%
2.0.1 to 2.0.264.070.063.976.7-0.2%
2.0.3 to 2.1.0168.0181.6166.8178.8-0.7%, level at the median, plotted flat

Medians, with the 95th percentile under each. A step whose median its release's notes read level is plotted flat.

Dispose, Xbox 360

77% of 1.12.0's time

Measured values, in ms
StepBeforeAfterChange
1.12.0 to 2.0.0160.7194.5125.8169.5-21.7%
2.0.0 to 2.0.1120.9295.7119.8265.4-0.9%
2.0.1 to 2.0.2141.7297.6141.1314.9-0.4%
2.0.3 to 2.1.0128.0203.7126.7208.2-1.0%, level at the median, plotted flat

Medians, with the 95th percentile under each. A step whose median its release's notes read level is plotted flat.

Dispose, DualSense over USB/IP

0.8% of 1.12.0's time

Measured values, in ms
StepBeforeAfterChange
1.12.0 to 2.0.0509.2511.85.926.0-98.8%
2.0.0 to 2.0.111.023.87.924.2-28.2%
2.0.1 to 2.0.211.322.511.223.3-0.9%
2.0.3 to 2.1.011.325.48.721.4-23.0%, level at the median, plotted flat

Medians, with the 95th percentile under each. A step whose median its release's notes read level is plotted flat.

Input to the game

SubmitState to a game's ReadFile, DualShock 4

77% of 1.12.0's time

Measured values, in µs
StepBeforeAfterChange
1.12.0 to 2.0.065.5107.648.787.8-25.6%
2.0.0 to 2.0.142.385.542.193.8-0.5%
2.0.1 to 2.0.244.083.546.080.2+4.5%
2.0.3 to 2.1.039.194.541.293.5+5.4%, level at the median, plotted flat

Medians, with the 95th percentile under each. A step whose median its release's notes read level is plotted flat.

SubmitState to a game's ReadFile, DualSense

74% of 1.12.0's time

Measured values, in µs
StepBeforeAfterChange
1.12.0 to 2.0.066.0107.848.187.0-27.1%
2.0.0 to 2.0.144.491.641.591.5-6.5%
2.0.1 to 2.0.241.787.545.472.0+8.9%
2.0.3 to 2.1.049.7106.755.087.0+10.7%, level at the median, plotted flat

Medians, with the 95th percentile under each. A step whose median its release's notes read level is plotted flat.

SubmitState to a game's ReadFile, DualShock 3

83% of 1.12.0's time

Measured values, in µs
StepBeforeAfterChange
1.12.0 to 2.0.069.6106.259.7107.8-14.2%
2.0.0 to 2.0.170.7111.362.8111.9-11.2%
2.0.1 to 2.0.250.095.554.2104.8+8.4%
2.0.3 to 2.1.064.7117.977.7115.5+20.1%, level at the median, plotted flat

Medians, with the 95th percentile under each. A step whose median its release's notes read level is plotted flat.

SubmitState to a game's ReadFile, DualSense over USB/IP

53% of 1.12.0's time

Measured values, in µs
StepBeforeAfterChange
1.12.0 to 2.0.0106.4182.058.1133.1-45.4%
2.0.0 to 2.0.166.2147.464.8148.4-2.1%
2.0.1 to 2.0.262.5140.761.7137.1-1.3%
2.0.3 to 2.1.071.3149.566.6134.2-6.6%, level at the median, plotted flat

Medians, with the 95th percentile under each. A step whose median its release's notes read level is plotted flat.

SubmitState to XInputGetState, Xbox 360

98% of 1.12.0's time

Measured values, in µs
StepBeforeAfterChange
1.12.0 to 2.0.090.6150.883.9156.9-7.4%
2.0.0 to 2.0.168.8122.670.8125.5+2.9%
2.0.1 to 2.0.272.3129.474.2134.6+2.6%
2.0.3 to 2.1.070.8133.2113.6180.2+60.5%, level at the median, plotted flat

Medians, with the 95th percentile under each. A step whose median its release's notes read level is plotted flat.

Output and feature reports

Output report 0x05 to OutputReceived, DualShock 4

93% of 1.12.0's time

Measured values, in µs
StepBeforeAfterChange
1.12.0 to 2.0.037.861.133.654.8-11.1%
2.0.0 to 2.0.133.655.033.853.1+0.6%
2.0.1 to 2.0.236.858.138.362.1+4.1%
2.0.3 to 2.1.040.561.534.257.5-15.6%, level at the median, plotted flat

Medians, with the 95th percentile under each. A step whose median its release's notes read level is plotted flat.

GET_REPORT(Feature 0x05), DualSense over USB/IP

92% of 1.12.0's time

Measured values, in µs
StepBeforeAfterChange
1.12.0 to 2.0.022.052.721.629.6-1.8%
2.0.0 to 2.0.121.855.021.329.3-2.3%
2.0.1 to 2.0.224.339.523.245.6-4.5%
2.0.3 to 2.1.029.461.122.358.2-24.1%, level at the median, plotted flat

Medians, with the 95th percentile under each. A step whose median its release's notes read level is plotted flat.

SubmitState, per call

SubmitState, DualShock 4

102% of 1.12.0's time

Measured values, in ns
StepBeforeAfterChange
1.12.0 to 2.0.0275.71,474.3268.01,029.1-2.8%
2.0.0 to 2.0.1264.3985.2267.41,021.4+1.2%
2.0.1 to 2.0.2303.71,441.3313.51,450.4+3.2%
2.0.3 to 2.1.0266.01,009.7522.7928.5+96.5%, level at the median, plotted flat

Medians, with the 95th percentile under each. A step whose median its release's notes read level is plotted flat.

SubmitState, Xbox 360

24% of 1.12.0's time

Measured values, in ns
StepBeforeAfterChange
1.12.0 to 2.0.0687.4704.7633.0801.4-7.9%
2.0.0 to 2.0.1744.9799.3744.4800.8-0.1%
2.0.1 to 2.0.2855.71,255.6792.41,108.2-7.4%
2.0.3 to 2.1.0649.3823.8180.6186.4-72.2%, faster at the median

Medians, with the 95th percentile under each.

SubmitState, DualShock 3

98% of 1.12.0's time

Measured values, in ns
StepBeforeAfterChange
1.12.0 to 2.0.0408.7803.4397.3422.9-2.8%
2.0.0 to 2.0.1388.8414.2397.1426.2+2.1%
2.0.1 to 2.0.2519.8625.6511.9622.9-1.5%
2.0.3 to 2.1.0406.7444.3274.7306.2-32.5%, level at the median, plotted flat

Medians, with the 95th percentile under each. A step whose median its release's notes read level is plotted flat.

SubmitState, DualSense over Bluetooth (report 0x31)

43% of 1.12.0's time

Measured values, in ns
StepBeforeAfterChange
1.12.0 to 2.0.0460.8708.1412.9427.1-10.4%
2.0.0 to 2.0.1406.0420.2404.0414.0-0.5%
2.0.1 to 2.0.2480.6679.5446.4615.6-7.1%
2.0.3 to 2.1.0384.9403.8201.3207.8-47.7%, faster at the median

Medians, with the 95th percentile under each.

SubmitState, Switch 2 Pro

75% of 1.12.0's time

Measured values, in ns
StepBeforeAfterChange
1.12.0 to 2.0.0401.0450.8290.1335.6-27.7%
2.0.0 to 2.0.1259.2281.9267.3293.0+3.1%
2.0.1 to 2.0.2346.1396.9348.9377.8+0.8%
2.0.3 to 2.1.0264.3311.3297.9347.3+12.7%, level at the median, plotted flat

Medians, with the 95th percentile under each. A step whose median its release's notes read level is plotted flat.

SubmitState back to back, Xbox 360

15% of 1.12.0's time

Measured values, in frames a second
StepBeforeAfterChange
1.12.0 to 2.0.01,682,1691,761,893+4.7%
2.0.0 to 2.0.11,769,4861,790,965+1.2%
2.0.1 to 2.0.21,437,9861,490,247+3.6%
2.0.3 to 2.1.01,250,1377,609,090+508.7%, faster at the median

Medians. The chart plots time per frame, the inverse of this rate, so lower is faster there too.