Skip to content

Lens Benchmark

Julien Truffaut edited this page Dec 16, 2019 · 16 revisions

Protocol

10 forks of the jvm, each with 20 warm-up and 20 samples iterations, resulting in 200 samples iterations per method. Each iteration corresponds to potentially million of executions.

To reproduce, clone Monocle and run following commands:

sbt
bench/jmh:run -rf=csv .*Lens.*

Benchmarks were generated using jmh using code from bench module.

lensGetX means the method get of Lens was benchmarked using x composition, e.g.

def get3() = (lens1 composeLens lens2 composeLens lens3 composeLens lens4).get(x)

How to read the results

if lensModify3 for Std / Monocle is 35.56 %, it means that std (i.e. standard scala) is around 3 times faster than Monocle for the method lensModify3.

Use random input from jmh and measure in μs/ops (28/02/2015)

Method Std / Monocle Macro (%) Std / Monocle (%) Std / Scalaz (%) Std / Shapeless (%)
lensGet0 45.56 37.65 9.69 7.08
lensGet3 18.03 13.02 2.27 2.26
lensGet6 14.93 9.77 1.64 1.68
lensModify0 77.43 47.72 25.20 8.08
lensModify3 48.22 28.77 14.20 4.89
lensModify6 52.25 29.33 12.93 4.98
lensModifyF0 41.98 60.46 39.63 N/A
lensModifyF3 39.24 27.78 19.89 N/A
lensModifyF6 37.93 29.44 19.78 N/A
lensSet0 81.24 81.29 17.21 12.16
lensSet3 54.93 34.18 13.42 6.59
lensSet6 51.00 31.69 12.24 6.55
"Benchmark","Mode","Threads","Samples","Score","Score Error (99.9%)","Unit"
"monocle.bench.MonocleLensBench.lensGet0","avgt",1,200.000000,0.005846,0.000323,"us/op"
"monocle.bench.MonocleLensBench.lensGet3","avgt",1,200.000000,0.022520,0.000200,"us/op"
"monocle.bench.MonocleLensBench.lensGet6","avgt",1,200.000000,0.041114,0.000315,"us/op"
"monocle.bench.MonocleLensBench.lensModify0","avgt",1,200.000000,0.015668,0.000148,"us/op"
"monocle.bench.MonocleLensBench.lensModify3","avgt",1,200.000000,0.082020,0.000455,"us/op"
"monocle.bench.MonocleLensBench.lensModify6","avgt",1,200.000000,0.142400,0.000830,"us/op"
"monocle.bench.MonocleLensBench.lensModifyF0","avgt",1,200.000000,0.030589,0.000140,"us/op"
"monocle.bench.MonocleLensBench.lensModifyF3","avgt",1,200.000000,0.136045,0.000775,"us/op"
"monocle.bench.MonocleLensBench.lensModifyF6","avgt",1,200.000000,0.226614,0.001054,"us/op"
"monocle.bench.MonocleLensBench.lensSet0","avgt",1,200.000000,0.007599,0.000042,"us/op"
"monocle.bench.MonocleLensBench.lensSet3","avgt",1,200.000000,0.069027,0.000517,"us/op"
"monocle.bench.MonocleLensBench.lensSet6","avgt",1,200.000000,0.130762,0.000967,"us/op"
"monocle.bench.MonocleMacroLensBench.lensGet0","avgt",1,200.000000,0.004831,0.000037,"us/op"
"monocle.bench.MonocleMacroLensBench.lensGet3","avgt",1,200.000000,0.016257,0.000181,"us/op"
"monocle.bench.MonocleMacroLensBench.lensGet6","avgt",1,200.000000,0.026912,0.000215,"us/op"
"monocle.bench.MonocleMacroLensBench.lensModify0","avgt",1,200.000000,0.009655,0.000063,"us/op"
"monocle.bench.MonocleMacroLensBench.lensModify3","avgt",1,200.000000,0.048938,0.000360,"us/op"
"monocle.bench.MonocleMacroLensBench.lensModify6","avgt",1,200.000000,0.079917,0.000820,"us/op"
"monocle.bench.MonocleMacroLensBench.lensModifyF0","avgt",1,200.000000,0.044050,0.000221,"us/op"
"monocle.bench.MonocleMacroLensBench.lensModifyF3","avgt",1,200.000000,0.096324,0.000815,"us/op"
"monocle.bench.MonocleMacroLensBench.lensModifyF6","avgt",1,200.000000,0.175852,0.001542,"us/op"
"monocle.bench.MonocleMacroLensBench.lensSet0","avgt",1,200.000000,0.007603,0.000063,"us/op"
"monocle.bench.MonocleMacroLensBench.lensSet3","avgt",1,200.000000,0.042953,0.000229,"us/op"
"monocle.bench.MonocleMacroLensBench.lensSet6","avgt",1,200.000000,0.081250,0.000836,"us/op"
"monocle.bench.ScalazLensBench.lensGet0","avgt",1,200.000000,0.022725,0.000115,"us/op"
"monocle.bench.ScalazLensBench.lensGet3","avgt",1,200.000000,0.128934,0.000818,"us/op"
"monocle.bench.ScalazLensBench.lensGet6","avgt",1,200.000000,0.244529,0.003090,"us/op"
"monocle.bench.ScalazLensBench.lensModify0","avgt",1,200.000000,0.029665,0.000258,"us/op"
"monocle.bench.ScalazLensBench.lensModify3","avgt",1,200.000000,0.166207,0.002211,"us/op"
"monocle.bench.ScalazLensBench.lensModify6","avgt",1,200.000000,0.323053,0.003443,"us/op"
"monocle.bench.ScalazLensBench.lensModifyF0","avgt",1,200.000000,0.046662,0.000405,"us/op"
"monocle.bench.ScalazLensBench.lensModifyF3","avgt",1,200.000000,0.190031,0.002106,"us/op"
"monocle.bench.ScalazLensBench.lensModifyF6","avgt",1,200.000000,0.337266,0.003115,"us/op"
"monocle.bench.ScalazLensBench.lensSet0","avgt",1,200.000000,0.035901,0.000471,"us/op"
"monocle.bench.ScalazLensBench.lensSet3","avgt",1,200.000000,0.175732,0.002259,"us/op"
"monocle.bench.ScalazLensBench.lensSet6","avgt",1,200.000000,0.338551,0.013451,"us/op"
"monocle.bench.ShapelessLensBench.lensGet0","avgt",1,200.000000,0.031096,0.000976,"us/op"
"monocle.bench.ShapelessLensBench.lensGet3","avgt",1,200.000000,0.129421,0.001562,"us/op"
"monocle.bench.ShapelessLensBench.lensGet6","avgt",1,200.000000,0.238459,0.006761,"us/op"
"monocle.bench.ShapelessLensBench.lensModify0","avgt",1,200.000000,0.092537,0.001702,"us/op"
"monocle.bench.ShapelessLensBench.lensModify3","avgt",1,200.000000,0.483053,0.008188,"us/op"
"monocle.bench.ShapelessLensBench.lensModify6","avgt",1,200.000000,0.837779,0.009187,"us/op"
"monocle.bench.ShapelessLensBench.lensSet0","avgt",1,200.000000,0.050803,0.000493,"us/op"
"monocle.bench.ShapelessLensBench.lensSet3","avgt",1,200.000000,0.358253,0.002739,"us/op"
"monocle.bench.ShapelessLensBench.lensSet6","avgt",1,200.000000,0.632707,0.012949,"us/op"
"monocle.bench.StdLensBench.lensGet0","avgt",1,200.000000,0.002201,0.000014,"us/op"
"monocle.bench.StdLensBench.lensGet3","avgt",1,200.000000,0.002931,0.000016,"us/op"
"monocle.bench.StdLensBench.lensGet6","avgt",1,200.000000,0.004017,0.000044,"us/op"
"monocle.bench.StdLensBench.lensModify0","avgt",1,200.000000,0.007476,0.000057,"us/op"
"monocle.bench.StdLensBench.lensModify3","avgt",1,200.000000,0.023598,0.000140,"us/op"
"monocle.bench.StdLensBench.lensModify6","avgt",1,200.000000,0.041760,0.000107,"us/op"
"monocle.bench.StdLensBench.lensModifyF0","avgt",1,200.000000,0.018494,0.000076,"us/op"
"monocle.bench.StdLensBench.lensModifyF3","avgt",1,200.000000,0.037798,0.000125,"us/op"
"monocle.bench.StdLensBench.lensModifyF6","avgt",1,200.000000,0.066707,0.000439,"us/op"
"monocle.bench.StdLensBench.lensSet0","avgt",1,200.000000,0.006177,0.000018,"us/op"
"monocle.bench.StdLensBench.lensSet3","avgt",1,200.000000,0.023592,0.000054,"us/op"
"monocle.bench.StdLensBench.lensSet6","avgt",1,200.000000,0.041437,0.000131,"us/op"

Override get and set in macros (15/01/2015)

Method Monocle Macro / Std (%) Monocle / Std (%) Scalaz / Std (%) Shapeless / Std (%)
lensGet0 21.24 18.75 3.92 3.11
lensGet3 9.27 7.24 1.10 1.19
lensGet6 9.29 6.42 1.02 1.15
lensModify0 58.38 35.72 18.56 6.41
lensModify3 51.80 28.88 15.52 5.50
lensModify6 53.76 29.73 14.71 5.53
lensModifyF0 58.45 70.39 55.52 N/A
lensModifyF3 45.51 32.17 26.16 N/A
lensModifyF6 44.78 33.77 26.00 N/A
lensSet0 87.20 77.25 14.40 10.02
lensSet3 59.06 33.33 14.29 7.19
lensSet6 59.20 35.96 15.30 7.75
"Benchmark","Mode","Threads","Samples","Score","Score Error (99.9%)","Unit"
"monocle.bench.MonocleLensBench.lensGet0","thrpt",1,200,2.2731149260999907E7,128087.50735423969,"ops/s"
"monocle.bench.MonocleLensBench.lensGet3","thrpt",1,200,5310579.133704421,23869.012061306163,"ops/s"
"monocle.bench.MonocleLensBench.lensGet6","thrpt",1,200,2810017.6177639067,18083.869035699045,"ops/s"
"monocle.bench.MonocleLensBench.lensModify0","thrpt",1,200,6709999.479392764,14477.825647316413,"ops/s"
"monocle.bench.MonocleLensBench.lensModify3","thrpt",1,200,1223559.9989262715,4882.892563371279,"ops/s"
"monocle.bench.MonocleLensBench.lensModify6","thrpt",1,200,724205.0945298838,1991.2029109225268,"ops/s"
"monocle.bench.MonocleLensBench.lensModifyF0","thrpt",1,200,2452179.2635462913,7378.706740550416,"ops/s"
"monocle.bench.MonocleLensBench.lensModifyF3","thrpt",1,200,680440.9216695719,2089.3875829279077,"ops/s"
"monocle.bench.MonocleLensBench.lensModifyF6","thrpt",1,200,420384.9188206778,2049.0014089305664,"ops/s"
"monocle.bench.MonocleLensBench.lensSet0","thrpt",1,200,1.6680271021363582E7,49293.25570779354,"ops/s"
"monocle.bench.MonocleLensBench.lensSet3","thrpt",1,200,1452489.4404899348,4019.6904817339564,"ops/s"
"monocle.bench.MonocleLensBench.lensSet6","thrpt",1,200,822462.7801365601,1926.2197464723004,"ops/s"
"monocle.bench.MonocleMacroLensBench.lensGet0","thrpt",1,200,2.5740304614488278E7,209811.69098136417,"ops/s"
"monocle.bench.MonocleMacroLensBench.lensGet3","thrpt",1,200,6792742.703759759,13083.631130876956,"ops/s"
"monocle.bench.MonocleMacroLensBench.lensGet6","thrpt",1,200,4064387.145285679,32381.305870789904,"ops/s"
"monocle.bench.MonocleMacroLensBench.lensModify0","thrpt",1,200,1.0965564284163354E7,32011.10051073785,"ops/s"
"monocle.bench.MonocleMacroLensBench.lensModify3","thrpt",1,200,2194306.1246423787,5114.9192223732925,"ops/s"
"monocle.bench.MonocleMacroLensBench.lensModify6","thrpt",1,200,1309479.8609017364,8976.725002398654,"ops/s"
"monocle.bench.MonocleMacroLensBench.lensModifyF0","thrpt",1,200,2036152.8404950658,20675.408751515148,"ops/s"
"monocle.bench.MonocleMacroLensBench.lensModifyF3","thrpt",1,200,962621.0419725154,8350.829575993792,"ops/s"
"monocle.bench.MonocleMacroLensBench.lensModifyF6","thrpt",1,200,557456.1488211098,3060.639183376016,"ops/s"
"monocle.bench.MonocleMacroLensBench.lensSet0","thrpt",1,200,1.882944712858127E7,70302.85164020513,"ops/s"
"monocle.bench.MonocleMacroLensBench.lensSet3","thrpt",1,200,2573239.5943739726,8301.779001504477,"ops/s"
"monocle.bench.MonocleMacroLensBench.lensSet6","thrpt",1,200,1353873.069273644,16597.190546644604,"ops/s"
"monocle.bench.ScalazLensBench.lensGet0","thrpt",1,200,4749228.00796804,30947.840387253273,"ops/s"
"monocle.bench.ScalazLensBench.lensGet3","thrpt",1,200,807574.342201488,3150.4206389603532,"ops/s"
"monocle.bench.ScalazLensBench.lensGet6","thrpt",1,200,444524.2782275075,1655.3268959188317,"ops/s"
"monocle.bench.ScalazLensBench.lensModify0","thrpt",1,200,3486357.7493670164,43615.56015045046,"ops/s"
"monocle.bench.ScalazLensBench.lensModify3","thrpt",1,200,657523.0230565905,2615.325597195885,"ops/s"
"monocle.bench.ScalazLensBench.lensModify6","thrpt",1,200,358363.57212292484,1187.6206830243914,"ops/s"
"monocle.bench.ScalazLensBench.lensModifyF0","thrpt",1,200,1933993.3855852345,6110.680711836359,"ops/s"
"monocle.bench.ScalazLensBench.lensModifyF3","thrpt",1,200,553335.0658252656,1387.7065450578127,"ops/s"
"monocle.bench.ScalazLensBench.lensModifyF6","thrpt",1,200,323691.6820651641,886.2724268721483,"ops/s"
"monocle.bench.ScalazLensBench.lensSet0","thrpt",1,200,3108552.3102240628,65754.95801132251,"ops/s"
"monocle.bench.ScalazLensBench.lensSet3","thrpt",1,200,622845.8377352984,1837.9367048650645,"ops/s"
"monocle.bench.ScalazLensBench.lensSet6","thrpt",1,200,350001.1278654889,1764.0173638936847,"ops/s"
"monocle.bench.ShapelessLensBench.lensGet0","thrpt",1,200,3772767.381095024,14810.422697064549,"ops/s"
"monocle.bench.ShapelessLensBench.lensGet3","thrpt",1,200,871726.189103982,3133.386043022686,"ops/s"
"monocle.bench.ShapelessLensBench.lensGet6","thrpt",1,200,501480.17209865677,1860.1839203213895,"ops/s"
"monocle.bench.ShapelessLensBench.lensModify0","thrpt",1,200,1203564.5777050634,21020.839941957292,"ops/s"
"monocle.bench.ShapelessLensBench.lensModify3","thrpt",1,200,232784.68294999783,3068.339853294037,"ops/s"
"monocle.bench.ShapelessLensBench.lensModify6","thrpt",1,200,134700.62288474542,483.8502276150052,"ops/s"
"monocle.bench.ShapelessLensBench.lensSet0","thrpt",1,200,2164530.2734213285,8655.064883985231,"ops/s"
"monocle.bench.ShapelessLensBench.lensSet3","thrpt",1,200,313092.3121717901,1866.1950745775416,"ops/s"
"monocle.bench.ShapelessLensBench.lensSet6","thrpt",1,200,177318.795088167,2410.7190053327954,"ops/s"
"monocle.bench.StdLensBench.lensGet0","thrpt",1,200,1.2120540774064744E8,2410854.762758047,"ops/s"
"monocle.bench.StdLensBench.lensGet3","thrpt",1,200,7.330038584204407E7,406340.6716194647,"ops/s"
"monocle.bench.StdLensBench.lensGet6","thrpt",1,200,4.375971627375308E7,158881.82567366824,"ops/s"
"monocle.bench.StdLensBench.lensModify0","thrpt",1,200,1.8782904476588894E7,131363.22682324293,"ops/s"
"monocle.bench.StdLensBench.lensModify3","thrpt",1,200,4236105.808974182,22291.631678714115,"ops/s"
"monocle.bench.StdLensBench.lensModify6","thrpt",1,200,2436008.550918944,7963.955303873023,"ops/s"
"monocle.bench.StdLensBench.lensModifyF0","thrpt",1,200,3483528.0212395233,8476.80370966953,"ops/s"
"monocle.bench.StdLensBench.lensModifyF3","thrpt",1,200,2115259.84761022,5055.009442711892,"ops/s"
"monocle.bench.StdLensBench.lensModifyF6","thrpt",1,200,1244973.1426438831,3410.4656154844633,"ops/s"
"monocle.bench.StdLensBench.lensSet0","thrpt",1,200,2.1593747226264276E7,112307.69429208418,"ops/s"
"monocle.bench.StdLensBench.lensSet3","thrpt",1,200,4357255.211614722,21274.147596292754,"ops/s"
"monocle.bench.StdLensBench.lensSet6","thrpt",1,200,2287013.7999733808,62928.734743920184,"ops/s"

First benchmark

Method Monocle / Std (%) Scalaz / Std (%) Shapeless / Std (%) Std (ops/s) Monocle (ops/s) Scalaz (ops/s) Shapeless (ops/s)
lensGet0 20.87 3.81 3.09 119074088 24855798 4536406 3674949
lensGet3 8.33 1.09 1.17 72852270 6070615 797613 850857
lensGet6 7.37 1.01 1.13 43390355 3199287 437463 491183
lensModify0 36.97 19.25 6.30 18089569 6687664 3481638 1140332
lensModify3 29.73 15.59 5.40 4113462 1222864 641339 222032
lensModify6 30.47 14.84 5.52 2371617 722557 352055 130976
lensModifyF0 70.79 55.37 N/A 3372282 2387191 1867221 N/A
lensModifyF3 32.60 25.82 N/A 2069934 674827 534489 N/A
lensModifyF6 33.73 25.77 N/A 1229799 414810 316887 N/A
lensSet0 87.40 14.83 10.01 20936710 18299229 3103883 2096807
lensSet3 35.56 14.53 6.97 4255807 1513217 618364 296458
lensSet6 34.09 14.28 7.29 2404861 819935 343509 175266
  • get is the method with the biggest performance hit. It is most likely due to the transformation of scala field access into a Function1 and it is also unlikely that we can improve the current performance.
  • For all methods except get, Monocle is at worst 3 times less fast than standard scala. This means that for any significant work, Lens overheard will be negligible.
"Benchmark","Mode","Threads","Samples","Score","Score Error (99.9%)","Unit"
"monocle.bench.MonocleLensBench.lensGet0","thrpt",1,200,2.4855798231247243E7,66872.78499372434,"ops/s"
"monocle.bench.MonocleLensBench.lensGet3","thrpt",1,200,6070615.175114831,36260.58237236766,"ops/s"
"monocle.bench.MonocleLensBench.lensGet6","thrpt",1,200,3199287.7864044933,16499.88394531258,"ops/s"
"monocle.bench.MonocleLensBench.lensModify0","thrpt",1,200,6687664.282254794,39714.4329485002,"ops/s"
"monocle.bench.MonocleLensBench.lensModify3","thrpt",1,200,1222864.1718526718,4962.232893043387,"ops/s"
"monocle.bench.MonocleLensBench.lensModify6","thrpt",1,200,722557.1532256997,2400.312834852751,"ops/s"
"monocle.bench.MonocleLensBench.lensModifyF0","thrpt",1,200,2387191.174456379,8439.121881242205,"ops/s"
"monocle.bench.MonocleLensBench.lensModifyF3","thrpt",1,200,674827.5374765923,2501.5502938372997,"ops/s"
"monocle.bench.MonocleLensBench.lensModifyF6","thrpt",1,200,414810.5323040902,1813.7966733934309,"ops/s"
"monocle.bench.MonocleLensBench.lensSet0","thrpt",1,200,1.829922966779939E7,57072.50357203397,"ops/s"
"monocle.bench.MonocleLensBench.lensSet3","thrpt",1,200,1513217.5826794573,4952.553776581269,"ops/s"
"monocle.bench.MonocleLensBench.lensSet6","thrpt",1,200,819935.2004576478,2841.3068175924154,"ops/s"
"monocle.bench.ScalazLensBench.lensGet0","thrpt",1,200,4536406.036748745,129188.34195074743,"ops/s"
"monocle.bench.ScalazLensBench.lensGet3","thrpt",1,200,797613.3986780876,2069.8037349364818,"ops/s"
"monocle.bench.ScalazLensBench.lensGet6","thrpt",1,200,437463.79512826866,4090.030481552326,"ops/s"
"monocle.bench.ScalazLensBench.lensModify0","thrpt",1,200,3481638.0280484203,12368.352296485338,"ops/s"
"monocle.bench.ScalazLensBench.lensModify3","thrpt",1,200,641339.1643553303,2392.306032551143,"ops/s"
"monocle.bench.ScalazLensBench.lensModify6","thrpt",1,200,352055.2645223356,2157.6552136155233,"ops/s"
"monocle.bench.ScalazLensBench.lensModifyF0","thrpt",1,200,1867221.4060423865,5657.9409592242155,"ops/s"
"monocle.bench.ScalazLensBench.lensModifyF3","thrpt",1,200,534489.9838300386,1348.5988160894221,"ops/s"
"monocle.bench.ScalazLensBench.lensModifyF6","thrpt",1,200,316887.5841823439,1302.9211892390676,"ops/s"
"monocle.bench.ScalazLensBench.lensSet0","thrpt",1,200,3103883.0259073908,15565.20124254052,"ops/s"
"monocle.bench.ScalazLensBench.lensSet3","thrpt",1,200,618364.2892861727,4536.534106875955,"ops/s"
"monocle.bench.ScalazLensBench.lensSet6","thrpt",1,200,343509.2788578689,1448.2736876657548,"ops/s"
"monocle.bench.ShapelessLensBench.lensGet0","thrpt",1,200,3674949.9062970225,17874.977602112067,"ops/s"
"monocle.bench.ShapelessLensBench.lensGet3","thrpt",1,200,850857.0416193922,3091.0362657176097,"ops/s"
"monocle.bench.ShapelessLensBench.lensGet6","thrpt",1,200,491183.5084431175,1473.6426725215097,"ops/s"
"monocle.bench.ShapelessLensBench.lensModify0","thrpt",1,200,1140332.1539987314,5080.917116262965,"ops/s"
"monocle.bench.ShapelessLensBench.lensModify3","thrpt",1,200,222032.2808872496,2582.591087786324,"ops/s"
"monocle.bench.ShapelessLensBench.lensModify6","thrpt",1,200,130976.57136638522,416.50680802369425,"ops/s"
"monocle.bench.ShapelessLensBench.lensSet0","thrpt",1,200,2096807.161392009,12060.417115736129,"ops/s"
"monocle.bench.ShapelessLensBench.lensSet3","thrpt",1,200,296458.0931006476,3925.2731904469756,"ops/s"
"monocle.bench.ShapelessLensBench.lensSet6","thrpt",1,200,175266.40748255915,544.7750357569518,"ops/s"
"monocle.bench.StdLensBench.lensGet0","thrpt",1,200,1.1907408881652237E8,2402043.2967818277,"ops/s"
"monocle.bench.StdLensBench.lensGet3","thrpt",1,200,7.285227029599395E7,534977.7410286046,"ops/s"
"monocle.bench.StdLensBench.lensGet6","thrpt",1,200,4.33903551357634E7,151022.74602398195,"ops/s"
"monocle.bench.StdLensBench.lensModify0","thrpt",1,200,1.8089569845012277E7,139808.75681620976,"ops/s"
"monocle.bench.StdLensBench.lensModify3","thrpt",1,200,4113462.238939792,18076.97552336182,"ops/s"
"monocle.bench.StdLensBench.lensModify6","thrpt",1,200,2371617.8405005923,6342.693303648368,"ops/s"
"monocle.bench.StdLensBench.lensModifyF0","thrpt",1,200,3372282.851378219,12964.441742576544,"ops/s"
"monocle.bench.StdLensBench.lensModifyF3","thrpt",1,200,2069934.943983309,5617.167135520344,"ops/s"
"monocle.bench.StdLensBench.lensModifyF6","thrpt",1,200,1229799.7559508125,3340.6696673790193,"ops/s"
"monocle.bench.StdLensBench.lensSet0","thrpt",1,200,2.0936710994510632E7,102635.21684945516,"ops/s"
"monocle.bench.StdLensBench.lensSet3","thrpt",1,200,4255807.19554759,9871.191127049977,"ops/s"
"monocle.bench.StdLensBench.lensSet6","thrpt",1,200,2404861.799550747,6790.158241363608,"ops/s"