This document contains simulated benchmark results for various operations in the DartFrame library. The times and scores are illustrative and do not represent actual performance. Results now include simulated data for sizes up to 1,000,000 elements/rows.
| Benchmark Name | Time per Run | Score (runs/s) |
|---|---|---|
| Series.creation.int(size:100) | 10.5 us. | 95238.1 |
| Series.creation.int(size:1000) | 95.2 us. | 10504.2 |
| Series.creation.int(size:10000) | 980.1 us. | 1020.3 |
| Series.creation.int(size:100000) | 9.9 ms. | 101.0 |
| Series.creation.int(size:1000000) | 105.0 ms. | 9.5 |
| Series.creation.double(size:100) | 12.3 us. | 81300.8 |
| Series.creation.double(size:1000) | 115.0 us. | 8695.7 |
| Series.creation.double(size:10000) | 1.2 ms. | 833.3 |
| Series.creation.double(size:100000) | 12.5 ms. | 80.0 |
| Series.creation.double(size:1000000) | 130.0 ms. | 7.7 |
| Series.creation.string(size:100) | 25.6 us. | 39062.5 |
| Series.creation.string(size:1000) | 240.1 us. | 4164.9 |
| Series.creation.string(size:10000) | 2.5 ms. | 400.0 |
| Series.creation.string(size:100000) | 26.0 ms. | 38.5 |
| Series.creation.string(size:1000000) | 270.0 ms. | 3.7 |
| Series.creation.dateTime(size:100) | 30.1 us. | 33222.6 |
| Series.creation.dateTime(size:1000) | 280.5 us. | 3565.1 |
| Series.creation.dateTime(size:10000) | 2.9 ms. | 344.8 |
| Series.creation.dateTime(size:100000) | 30.0 ms. | 33.3 |
| Series.creation.dateTime(size:1000000) | 310.0 ms. | 3.2 |
| Series.creation.withIndex(size:100) | 35.2 us. | 28409.1 |
| Series.creation.withIndex(size:1000) | 330.8 us. | 3022.9 |
| Series.creation.withIndex(size:10000) | 3.4 ms. | 294.1 |
| Series.creation.withIndex(size:100000) | 35.0 ms. | 28.6 |
| Series.creation.withIndex(size:1000000) | 360.0 ms. | 2.8 |
| Series.sort_values.int(size:100) | 40.5 us. | 24691.4 |
| Series.sort_values.int(size:1000) | 450.2 us. | 2221.2 |
| Series.sort_values.int(size:10000) | 5.1 ms. | 196.1 |
| Series.sort_values.int(size:100000) | 55.0 ms. | 18.2 |
| Series.sort_values.int(size:1000000) | 600.0 ms. | 1.7 |
| Series.sort_values.string(size:100) | 60.1 us. | 16638.9 |
| Series.sort_values.string(size:1000) | 650.7 us. | 1536.8 |
| Series.sort_values.string(size:10000) | 7.2 ms. | 138.9 |
| Series.sort_values.string(size:100000) | 75.0 ms. | 13.3 |
| Series.sort_values.string(size:1000000) | 800.0 ms. | 1.2 |
| Series.sort_values.withMissing(size:100) | 55.3 us. | 18083.2 |
| Series.sort_values.withMissing(size:1000) | 580.1 us. | 1723.8 |
| Series.sort_values.withMissing(size:10000) | 6.5 ms. | 153.8 |
| Series.sort_values.withMissing(size:100000) | 70.0 ms. | 14.3 |
| Series.sort_values.withMissing(size:1000000) | 750.0 ms. | 1.3 |
| Series.sort_index(size:100) | 38.2 us. | 26178.0 |
| Series.sort_index(size:1000) | 400.5 us. | 2496.9 |
| Series.sort_index(size:10000) | 4.2 ms. | 238.1 |
| Series.sort_index(size:100000) | 45.0 ms. | 22.2 |
| Series.sort_index(size:1000000) | 480.0 ms. | 2.1 |
| Series.apply.simpleMath(size:100) | 15.0 us. | 66666.7 |
| Series.apply.simpleMath(size:1000) | 145.3 us. | 6882.3 |
| Series.apply.simpleMath(size:10000) | 1.5 ms. | 666.7 |
| Series.apply.simpleMath(size:100000) | 15.5 ms. | 64.5 |
| Series.apply.simpleMath(size:1000000) | 160.0 ms. | 6.2 |
| Series.apply.toString(size:100) | 20.7 us. | 48309.2 |
| Series.apply.toString(size:1000) | 210.1 us. | 4759.6 |
| Series.apply.toString(size:10000) | 2.2 ms. | 454.5 |
| Series.apply.toString(size:100000) | 23.0 ms. | 43.5 |
| Series.apply.toString(size:1000000) | 240.0 ms. | 4.2 |
| Series.isin(size:100,lookups:10) | 22.3 us. | 44843.0 |
| Series.isin(size:100,lookups:100) | 35.1 us. | 28490.0 |
| Series.isin(size:1000,lookups:10) | 180.4 us. | 5543.2 |
| Series.isin(size:1000,lookups:100) | 250.9 us. | 3985.7 |
| Series.isin(size:10000,lookups:10) | 1.7 ms. | 588.2 |
| Series.isin(size:10000,lookups:100) | 2.3 ms. | 434.8 |
| Series.isin(size:100000,lookups:10) | 17.5 ms. | 57.1 |
| Series.isin(size:100000,lookups:100) | 24.0 ms. | 41.7 |
| Series.isin(size:1000000,lookups:10) | 170.0 ms. | 5.9 |
| Series.isin(size:1000000,lookups:100) | 235.0 ms. | 4.3 |
| Series.fillna.ffill(size:100,missing:10%) | 18.5 us. | 54054.1 |
| Series.fillna.ffill(size:100,missing:50%) | 19.2 us. | 52083.3 |
| Series.fillna.ffill(size:1000,missing:10%) | 170.0 us. | 5882.4 |
| Series.fillna.ffill(size:1000,missing:50%) | 175.8 us. | 5688.3 |
| Series.fillna.ffill(size:10000,missing:10%) | 1.6 ms. | 625.0 |
| Series.fillna.ffill(size:10000,missing:50%) | 1.65 ms. | 606.1 |
| Series.fillna.ffill(size:100000,missing:10%) | 16.2 ms. | 61.7 |
| Series.fillna.ffill(size:100000,missing:50%) | 16.8 ms. | 59.5 |
| Series.fillna.ffill(size:1000000,missing:10%) | 165.0 ms. | 6.1 |
| Series.fillna.ffill(size:1000000,missing:50%) | 170.0 ms. | 5.9 |
| Series.fillna.bfill(size:100,missing:10%) | 18.8 us. | 53191.5 |
| Series.fillna.bfill(size:100,missing:50%) | 19.5 us. | 51282.1 |
| Series.fillna.bfill(size:1000,missing:10%) | 172.3 us. | 5803.8 |
| Series.fillna.bfill(size:1000,missing:50%) | 178.1 us. | 5614.8 |
| Series.fillna.bfill(size:10000,missing:10%) | 1.62 ms. | 617.3 |
| Series.fillna.bfill(size:10000,missing:50%) | 1.68 ms. | 595.2 |
| Series.fillna.bfill(size:100000,missing:10%) | 16.5 ms. | 60.6 |
| Series.fillna.bfill(size:100000,missing:50%) | 17.1 ms. | 58.5 |
| Series.fillna.bfill(size:1000000,missing:10%) | 168.0 ms. | 6.0 |
| Series.fillna.bfill(size:1000000,missing:50%) | 174.0 ms. | 5.7 |
| Series.dt.year(size:100) | 25.1 us. | 39840.6 |
| Series.dt.year(size:1000) | 240.3 us. | 4161.5 |
| Series.dt.year(size:10000) | 2.5 ms. | 400.0 |
| Series.dt.year(size:100000) | 26.0 ms. | 38.5 |
| Series.dt.year(size:1000000) | 270.0 ms. | 3.7 |
| Series.dt.weekday(size:100) | 28.9 us. | 34602.1 |
| Series.dt.weekday(size:1000) | 270.5 us. | 3696.9 |
| Series.dt.weekday(size:10000) | 2.8 ms. | 357.1 |
| Series.dt.weekday(size:100000) | 29.0 ms. | 34.5 |
| Series.dt.weekday(size:1000000) | 300.0 ms. | 3.3 |
| Series.dt.date(size:100) | 30.2 us. | 33112.6 |
| Series.dt.date(size:1000) | 290.8 us. | 3438.8 |
| Series.dt.date(size:10000) | 3.1 ms. | 322.6 |
| Series.dt.date(size:100000) | 32.0 ms. | 31.2 |
| Series.dt.date(size:1000000) | 330.0 ms. | 3.0 |
| Series.add.scalar(size:100) | 8.1 us. | 123456.8 |
| Series.add.scalar(size:1000) | 75.3 us. | 13280.2 |
| Series.add.scalar(size:10000) | 760.5 us. | 1314.9 |
| Series.add.scalar(size:100000) | 7.7 ms. | 129.9 |
| Series.add.scalar(size:1000000) | 78.0 ms. | 12.8 |
| Series.add.series(size:100) | 12.5 us. | 80000.0 |
| Series.add.series(size:1000) | 110.2 us. | 9074.4 |
| Series.add.series(size:10000) | 1.1 ms. | 909.1 |
| Series.add.series(size:100000) | 11.5 ms. | 87.0 |
| Series.add.series(size:1000000) | 120.0 ms. | 8.3 |
| Benchmark Name | Time per Run | Score (runs/s) |
|---|---|---|
| DataFrame.creation.fromMap(rows:0,cols:0) | 5.2 us. | 192307.7 |
| DataFrame.rowAccess.iloc(rows:0,cols:0) | 2.1 us. | 476190.5 |
| DataFrame.rowAccess.loc(rows:0,cols:0) | 2.5 us. | 400000.0 |
| DataFrame.creation.fromMap(rows:1000,cols:5) | 350.7 us. | 2851.4 |
| DataFrame.creation.fromMap(rows:1000,cols:20) | 1.3 ms. | 769.2 |
| DataFrame.creation.fromMap(rows:10000,cols:5) | 3.6 ms. | 277.8 |
| DataFrame.creation.fromMap(rows:10000,cols:20) | 13.5 ms. | 74.1 |
| DataFrame.creation.fromMap(rows:100000,cols:5) | 37.0 ms. | 27.0 |
| DataFrame.creation.fromMap(rows:100000,cols:20) | 140.0 ms. | 7.1 |
| DataFrame.creation.fromMap(rows:1000000,cols:5) | 380.0 ms. | 2.6 |
| DataFrame.creation.fromMap(rows:1000000,cols:20) | 1.45 s. | 0.7 |
| DataFrame.creation.fromRows(rows:1000,cols:5) | 1.5 ms. | 666.7 |
| DataFrame.creation.fromRows(rows:1000,cols:20) | 5.8 ms. | 172.4 |
| DataFrame.creation.fromRows(rows:10000,cols:5) | 15.2 ms. | 65.8 |
| DataFrame.creation.fromRows(rows:10000,cols:20) | 60.1 ms. | 16.6 |
| DataFrame.creation.fromRows(rows:100000,cols:5) | 155.0 ms. | 6.5 |
| DataFrame.creation.fromRows(rows:100000,cols:20) | 610.0 ms. | 1.6 |
| DataFrame.creation.fromRows(rows:1000000,cols:5) | 1.6 s. | 0.6 |
| DataFrame.creation.fromRows(rows:1000000,cols:20) | 6.2 s. | 0.16 |
| DataFrame.creation.fromCSVString(rows:1000,cols:5) | 10.5 ms. | 95.2 |
| DataFrame.creation.fromCSVString(rows:1000,cols:20) | 40.2 ms. | 24.9 |
| DataFrame.creation.fromCSVString(rows:10000,cols:5) | 105.0 ms. | 9.5 |
| DataFrame.creation.fromCSVString(rows:10000,cols:20) | 410.7 ms. | 2.4 |
| DataFrame.creation.fromCSVString(rows:100000,cols:5) | 1.1 s. | 0.9 |
| DataFrame.creation.fromCSVString(rows:100000,cols:20) | 4.2 s. | 0.24 |
| DataFrame.creation.fromCSVString(rows:1000000,cols:5) | 11.5 s. | 0.087 |
| DataFrame.creation.fromCSVString(rows:1000000,cols:20) | 45.0 s. | 0.022 |
| DataFrame.columnAccess.byName(rows:1000,cols:5) | 7.3 us. | 136986.3 |
| DataFrame.columnAccess.byName(rows:1000,cols:20) | 8.1 us. | 123456.8 |
| DataFrame.columnAccess.byName(rows:10000,cols:5) | 7.5 us. | 133333.3 |
| DataFrame.columnAccess.byName(rows:10000,cols:20) | 8.5 us. | 117647.1 |
| DataFrame.columnAccess.byName(rows:100000,cols:5) | 7.8 us. | 128205.1 |
| DataFrame.columnAccess.byName(rows:100000,cols:20) | 8.9 us. | 112359.6 |
| DataFrame.columnAccess.byName(rows:1000000,cols:5) | 8.0 us. | 125000.0 |
| DataFrame.columnAccess.byName(rows:1000000,cols:20) | 9.2 us. | 108695.7 |
| DataFrame.columnAssignment(rows:1000,cols:5) | 150.3 us. | 6653.4 |
| DataFrame.columnAssignment(rows:1000,cols:20) | 160.1 us. | 6246.1 |
| DataFrame.columnAssignment(rows:10000,cols:5) | 1.4 ms. | 714.3 |
| DataFrame.columnAssignment(rows:10000,cols:20) | 1.5 ms. | 666.7 |
| DataFrame.columnAssignment(rows:100000,cols:5) | 14.5 ms. | 69.0 |
| DataFrame.columnAssignment(rows:100000,cols:20) | 15.5 ms. | 64.5 |
| DataFrame.columnAssignment(rows:1000000,cols:5) | 150.0 ms. | 6.7 |
| DataFrame.columnAssignment(rows:1000000,cols:20) | 160.0 ms. | 6.2 |
| DataFrame.rowAccess.iloc(rows:1000,cols:5) | 5.5 us. | 181818.2 |
| DataFrame.rowAccess.iloc(rows:1000,cols:20) | 6.1 us. | 163934.4 |
| DataFrame.rowAccess.iloc(rows:10000,cols:5) | 5.8 us. | 172413.8 |
| DataFrame.rowAccess.iloc(rows:10000,cols:20) | 6.5 us. | 153846.2 |
| DataFrame.rowAccess.iloc(rows:100000,cols:5) | 6.0 us. | 166666.7 |
| DataFrame.rowAccess.iloc(rows:100000,cols:20) | 6.8 us. | 147058.8 |
| DataFrame.rowAccess.iloc(rows:1000000,cols:5) | 6.2 us. | 161290.3 |
| DataFrame.rowAccess.iloc(rows:1000000,cols:20) | 7.1 us. | 140845.1 |
| DataFrame.rowAccess.loc(rows:1000,cols:5) | 12.3 us. | 81300.8 |
| DataFrame.rowAccess.loc(rows:1000,cols:20) | 15.1 us. | 66225.2 |
| DataFrame.rowAccess.loc(rows:10000,cols:5) | 120.5 us. | 8298.8 |
| DataFrame.rowAccess.loc(rows:10000,cols:20) | 145.0 us. | 6896.6 |
| DataFrame.rowAccess.loc(rows:100000,cols:5) | 1.25 ms. | 800.0 |
| DataFrame.rowAccess.loc(rows:100000,cols:20) | 1.50 ms. | 666.7 |
| DataFrame.rowAccess.loc(rows:1000000,cols:5) | 13.0 ms. | 76.9 |
| DataFrame.rowAccess.loc(rows:1000000,cols:20) | 15.5 ms. | 64.5 |
| DataFrame.groupBy.oneColMean(rows:1000,cols:5,groups:5) | 2.5 ms. | 400.0 |
| DataFrame.groupBy.oneColMean(rows:1000,cols:5,groups:50) | 2.8 ms. | 357.1 |
| DataFrame.groupBy.oneColMean(rows:1000,cols:20,groups:5) | 8.2 ms. | 122.0 |
| DataFrame.groupBy.oneColMean(rows:1000,cols:20,groups:50) | 8.8 ms. | 113.6 |
| DataFrame.groupBy.oneColMean(rows:10000,cols:5,groups:5) | 24.0 ms. | 41.7 |
| DataFrame.groupBy.oneColMean(rows:10000,cols:5,groups:50) | 26.5 ms. | 37.7 |
| DataFrame.groupBy.oneColMean(rows:10000,cols:20,groups:5) | 80.3 ms. | 12.5 |
| DataFrame.groupBy.oneColMean(rows:10000,cols:20,groups:50) | 85.1 ms. | 11.8 |
| DataFrame.groupBy.oneColMean(rows:100000,cols:5,groups:5) | 250 ms. | 4.0 |
| DataFrame.groupBy.oneColMean(rows:100000,cols:5,groups:50) | 270 ms. | 3.7 |
| DataFrame.groupBy.oneColMean(rows:100000,cols:20,groups:5) | 820 ms. | 1.2 |
| DataFrame.groupBy.oneColMean(rows:100000,cols:20,groups:50) | 880 ms. | 1.1 |
| DataFrame.groupBy.oneColMean(rows:1000000,cols:5,groups:5) | 2.6 s. | 0.38 |
| DataFrame.groupBy.oneColMean(rows:1000000,cols:5,groups:50) | 2.9 s. | 0.34 |
| DataFrame.groupBy.oneColMean(rows:1000000,cols:20,groups:5) | 8.5 s. | 0.12 |
| DataFrame.groupBy.oneColMean(rows:1000000,cols:20,groups:50) | 9.2 s. | 0.11 |
| DataFrame.groupBy.multiColSum(rows:1000,cols:5,g1:5,g2:5) | 3.5 ms. | 285.7 |
| DataFrame.groupBy.multiColSum(rows:1000,cols:20,g1:5,g2:5) | 10.2 ms. | 98.0 |
| DataFrame.groupBy.multiColSum(rows:10000,cols:5,g1:5,g2:5) | 33.0 ms. | 30.3 |
| DataFrame.groupBy.multiColSum(rows:10000,cols:5,g1:50,g2:50) | 38.0 ms. | 26.3 |
| DataFrame.groupBy.multiColSum(rows:10000,cols:20,g1:5,g2:5) | 95.3 ms. | 10.5 |
| DataFrame.groupBy.multiColSum(rows:10000,cols:20,g1:50,g2:50) | 105.8 ms. | 9.5 |
| DataFrame.groupBy.multiColSum(rows:100000,cols:5,g1:5,g2:5) | 340 ms. | 2.9 |
| DataFrame.groupBy.multiColSum(rows:100000,cols:5,g1:50,g2:50) | 390 ms. | 2.6 |
| DataFrame.groupBy.multiColSum(rows:100000,cols:20,g1:5,g2:5) | 980 ms. | 1.0 |
| DataFrame.groupBy.multiColSum(rows:100000,cols:20,g1:50,g2:50) | 1.1 s. | 0.9 |
| DataFrame.groupBy.multiColSum(rows:1000000,cols:5,g1:5,g2:5) | 3.5 s. | 0.28 |
| DataFrame.groupBy.multiColSum(rows:1000000,cols:5,g1:50,g2:50) | 4.0 s. | 0.25 |
| DataFrame.groupBy.multiColSum(rows:1000000,cols:20,g1:5,g2:5) | 10.0 s. | 0.1 |
| DataFrame.groupBy.multiColSum(rows:1000000,cols:20,g1:50,g2:50) | 11.2 s. | 0.09 |
| DataFrame.filter.oneCondition(rows:1000,cols:5) | 250.6 us. | 3990.4 |
| DataFrame.filter.oneCondition(rows:1000,cols:20) | 270.1 us. | 3702.3 |
| DataFrame.filter.oneCondition(rows:10000,cols:5) | 2.6 ms. | 384.6 |
| DataFrame.filter.oneCondition(rows:10000,cols:20) | 2.9 ms. | 344.8 |
| DataFrame.filter.oneCondition(rows:100000,cols:5) | 27.0 ms. | 37.0 |
| DataFrame.filter.oneCondition(rows:100000,cols:20) | 30.0 ms. | 33.3 |
| DataFrame.filter.oneCondition(rows:1000000,cols:5) | 280.0 ms. | 3.6 |
| DataFrame.filter.oneCondition(rows:1000000,cols:20) | 310.0 ms. | 3.2 |
| DataFrame.filter.multiConditions(rows:1000,cols:5) | 450.3 us. | 2220.7 |
| DataFrame.filter.multiConditions(rows:1000,cols:20) | 480.9 us. | 2079.4 |
| DataFrame.filter.multiConditions(rows:10000,cols:5) | 4.6 ms. | 217.4 |
| DataFrame.filter.multiConditions(rows:10000,cols:20) | 5.0 ms. | 200.0 |
| DataFrame.filter.multiConditions(rows:100000,cols:5) | 47.0 ms. | 21.3 |
| DataFrame.filter.multiConditions(rows:100000,cols:20) | 52.0 ms. | 19.2 |
| DataFrame.filter.multiConditions(rows:1000000,cols:5) | 480.0 ms. | 2.1 |
| DataFrame.filter.multiConditions(rows:1000000,cols:20) | 530.0 ms. | 1.9 |
| DataFrame.concatenate.rows(r1:5000,c:10,r2:5000) | 2.2 ms. | 454.5 |
| DataFrame.concatenate.cols(r:5000,c1:5,c2:5) | 1.8 ms. | 555.6 |
| DataFrame.concatenate.rows(r1:10000,c:5,r2:10000) | 4.0 ms. | 250.0 |
| DataFrame.concatenate.cols(r:10000,c1:3,c2:7) | 3.5 ms. | 285.7 |
Note: These are placeholder values. Actual performance will vary based on the system, Dart VM version, and specific implementation details.