11package com .netaporter .uri
22
3- import org .scalameter ._
4- import org .scalameter .execution .LocalExecutor
5- import org .scalameter .Executor .Measurer
6- import org .scalameter .reporting .{RegressionReporter , HtmlReporter }
7- import util .Random
8- import org .scalameter .persistence .SerializationPersistor
3+ import org .scalameter .Measurer
4+ import org .scalameter .api ._
5+
6+ import scala .util .Random
97
108/**
119 * Date: 14/04/2013
1210 * Time: 18:29
1311 */
14- object RenderingBenchmark extends PerformanceTest {
15-
16- lazy val executor = LocalExecutor (
17- Executor .Warmer .Default (),
18- Aggregator .complete(Aggregator .average),
19- new Measurer .IgnoringGC
20- )
21-
22- lazy val reporter = Reporter .Composite (
23- new RegressionReporter (
24- RegressionReporter .Tester .Accepter (),
25- RegressionReporter .Historian .ExponentialBackoff ()
26- ),
27- HtmlReporter (embedDsv = true )
28- )
29- lazy val persistor = new SerializationPersistor
12+ object RenderingBenchmark extends Bench .OfflineReport {
3013
3114 val lengths = Gen .range(" String Length" )(1 , 20000 , 2000 )
3215 val testData = lengths.map(i => Random .alphanumeric.take(i).mkString)
3316
3417 val testLongPaths = testData.map(data => Uri (" /" + data))
3518 val testLongDomains = testData.map(data => Uri (" http" , data, " " ))
36- val testLongQueryKeys = testData.map(data => Uri (query = QueryString (Vector (data -> " value" ))))
37- val testLongQueryValues = testData.map(data => Uri (query = QueryString (Vector (" key" -> data))))
19+ val testLongQueryKeys = testData.map(data => Uri (query = QueryString (Vector (data -> Some ( " value" ) ))))
20+ val testLongQueryValues = testData.map(data => Uri (query = QueryString (Vector (" key" -> Some ( data) ))))
3821
3922 val numQueryStrings = Gen .range(" Num of Query String Pairs" )(1 , 2000 , 200 )
4023
4124 val testNumQueryString = numQueryStrings.map(data =>
4225 Uri (scheme = " http" ,
4326 host = " example.com" ,
44- query = QueryString ((1 until data).toVector.map(i => (" key" + i, " val" + i)))
27+ query = QueryString ((1 until data).toVector.map(i => (" key" + i, Some ( " val" + i) )))
4528 )
4629 )
4730
48- performance of " Uri-Rendering" config (api. exec.benchRuns -> 36 , api. exec.maxWarmupRuns -> 10 ) in {
31+ performance of " Uri-Rendering" config (exec.benchRuns -> 36 , exec.maxWarmupRuns -> 10 ) in {
4932
5033 measure method " path-length" in {
5134 using(testLongPaths) in {
@@ -77,4 +60,4 @@ object RenderingBenchmark extends PerformanceTest {
7760 }
7861 }
7962 }
80- }
63+ }
0 commit comments