def outerLoop = 1500 def loopRun = 5000 def b = "some blah" def startTime, execTime, loopExecTime, stringType println "" println "++++====++++ Run some String tests ++++====++++" // --- TEST PLAIN STRINGS --- println "======== Test plain Strings ==========" //double quotes stringType = "double quotes" loopExecTime = 0 for(o in 0..outerLoop){ startTime = System.nanoTime() for (j in 0..loopRun){ "Hello I am a text!!" } execTime = System.nanoTime() - startTime loopExecTime = loopExecTime + execTime } loopExecTime = new BigDecimal(loopExecTime).divideToIntegralValue(outerLoop) println "Median execution time for ${stringType} is ${loopExecTime} nanoseconds. That is ${loopExecTime/1000/1000} milliseconds" println "-----------" //single quotes stringType = "single quotes" loopExecTime = 0 for(o in 0..outerLoop){ startTime = System.nanoTime() for (j in 0..loopRun){ 'Hello I am a text!!' } execTime = System.nanoTime() - startTime loopExecTime = loopExecTime + execTime } loopExecTime = new BigDecimal(loopExecTime).divideToIntegralValue(outerLoop) println "Median execution time for ${stringType} is ${loopExecTime} nanoseconds. That is ${loopExecTime/1000/1000} milliseconds" println "-----------" //slashy quotes stringType = "slashy quotes" loopExecTime = 0 for(o in 0..outerLoop){ startTime = System.nanoTime() for (j in 0..loopRun){ /Hello I am a text!!/ } execTime = System.nanoTime() - startTime loopExecTime = loopExecTime + execTime } loopExecTime = new BigDecimal(loopExecTime).divideToIntegralValue(outerLoop) println "Median execution time for ${stringType} is ${loopExecTime} nanoseconds. That is ${loopExecTime/1000/1000} milliseconds" println "-----------" //multi-line double quotes stringType = "multi-line double quotes" loopExecTime = 0 for(o in 0..outerLoop){ startTime = System.nanoTime() for (j in 0..loopRun){ """Hello I am a text!!""" } execTime = System.nanoTime() - startTime loopExecTime = loopExecTime + execTime } loopExecTime = new BigDecimal(loopExecTime).divideToIntegralValue(outerLoop) println "Median execution time for ${stringType} is ${loopExecTime} nanoseconds. That is ${loopExecTime/1000/1000} milliseconds" println "-----------" //multi-line single quotes stringType = "multi-line single quotes" loopExecTime = 0 for(o in 0..outerLoop){ startTime = System.nanoTime() for (j in 0..loopRun){ '''Hello I am a text!!''' } execTime = System.nanoTime() - startTime loopExecTime = loopExecTime + execTime } loopExecTime = new BigDecimal(loopExecTime).divideToIntegralValue(outerLoop) println "Median execution time for ${stringType} is ${loopExecTime} nanoseconds. That is ${loopExecTime/1000/1000} milliseconds" println "-----------" println "" // --- TEST STRINGS WITH STATIC SUBSTITUTION --- println "======== Test Strings with static substitution ==========" //double quotes stringType = "double quotes" loopExecTime = 0 for(o in 0..outerLoop){ startTime = System.nanoTime() for (j in 0..loopRun){ "Hello I am a text!! This is an inserted variable: ${b}" } execTime = System.nanoTime() - startTime loopExecTime = loopExecTime + execTime } loopExecTime = new BigDecimal(loopExecTime).divideToIntegralValue(outerLoop) println "Median execution time for ${stringType} is ${loopExecTime} nanoseconds. That is ${loopExecTime/1000/1000} milliseconds" println "-----------" //single quotes stringType = "single quotes" loopExecTime = 0 for(o in 0..outerLoop){ startTime = System.nanoTime() for (j in 0..loopRun){ 'Hello I am a text!! This is an inserted variable: '+b } execTime = System.nanoTime() - startTime loopExecTime = loopExecTime + execTime } loopExecTime = new BigDecimal(loopExecTime).divideToIntegralValue(outerLoop) println "Median execution time for ${stringType} is ${loopExecTime} nanoseconds. That is ${loopExecTime/1000/1000} milliseconds" println "-----------" //slashy quotes stringType = "slashy quotes" loopExecTime = 0 for(o in 0..outerLoop){ startTime = System.nanoTime() for (j in 0..loopRun){ /Hello I am a text!! This is an inserted variable: ${b}/ } execTime = System.nanoTime() - startTime loopExecTime = loopExecTime + execTime } loopExecTime = new BigDecimal(loopExecTime).divideToIntegralValue(outerLoop) println "Median execution time for ${stringType} is ${loopExecTime} nanoseconds. That is ${loopExecTime/1000/1000} milliseconds" println "-----------" //multi-line double quotes stringType = "multi-line double quotes" loopExecTime = 0 for(o in 0..outerLoop){ startTime = System.nanoTime() for (j in 0..loopRun){ """Hello I am a text!! This is an inserted variable: ${b}""" } execTime = System.nanoTime() - startTime loopExecTime = loopExecTime + execTime } loopExecTime = new BigDecimal(loopExecTime).divideToIntegralValue(outerLoop) println "Median execution time for ${stringType} is ${loopExecTime} nanoseconds. That is ${loopExecTime/1000/1000} milliseconds" println "-----------" //multi-line single quotes stringType = "multi-line single quotes" loopExecTime = 0 for(o in 0..outerLoop){ startTime = System.nanoTime() for (j in 0..loopRun){ '''Hello I am a text!! This is an inserted variable: '''+b } execTime = System.nanoTime() - startTime loopExecTime = loopExecTime + execTime } loopExecTime = new BigDecimal(loopExecTime).divideToIntegralValue(outerLoop) println "Median execution time for ${stringType} is ${loopExecTime} nanoseconds. That is ${loopExecTime/1000/1000} milliseconds" println "-----------" println "" // --- TEST STRINGS WITH DYNAMIC SUBSTITUTION --- println "======== Test Strings with dynamic substitution ==========" //double quotes stringType = "double quotes" loopExecTime = 0 for(o in 0..outerLoop){ startTime = System.nanoTime() for (j in 0..loopRun){ "Hello I am a text!! This is an index variable: ${j}" } execTime = System.nanoTime() - startTime loopExecTime = loopExecTime + execTime } loopExecTime = new BigDecimal(loopExecTime).divideToIntegralValue(outerLoop) println "Median execution time for ${stringType} is ${loopExecTime} nanoseconds. That is ${loopExecTime/1000/1000} milliseconds" println "-----------" //single quotes stringType = "single quotes" loopExecTime = 0 for(o in 0..outerLoop){ startTime = System.nanoTime() for (j in 0..loopRun){ 'Hello I am a text!! This is an index variable: '+j } execTime = System.nanoTime() - startTime loopExecTime = loopExecTime + execTime } loopExecTime = new BigDecimal(loopExecTime).divideToIntegralValue(outerLoop) println "Median execution time for ${stringType} is ${loopExecTime} nanoseconds. That is ${loopExecTime/1000/1000} milliseconds" println "-----------" //slashy quotes stringType = "slashy quotes" loopExecTime = 0 for(o in 0..outerLoop){ startTime = System.nanoTime() for (j in 0..loopRun){ /Hello I am a text!! This is an index variable: ${j}/ } execTime = System.nanoTime() - startTime loopExecTime = loopExecTime + execTime } loopExecTime = new BigDecimal(loopExecTime).divideToIntegralValue(outerLoop) println "Median execution time for ${stringType} is ${loopExecTime} nanoseconds. That is ${loopExecTime/1000/1000} milliseconds" println "-----------" //multi-line double quotes stringType = "multi-line double quotes" loopExecTime = 0 for(o in 0..outerLoop){ startTime = System.nanoTime() for (j in 0..loopRun){ """Hello I am a text!! This is an index variable: ${j}""" } execTime = System.nanoTime() - startTime loopExecTime = loopExecTime + execTime } loopExecTime = new BigDecimal(loopExecTime).divideToIntegralValue(outerLoop) println "Median execution time for ${stringType} is ${loopExecTime} nanoseconds. That is ${loopExecTime/1000/1000} milliseconds" println "-----------" //multi-line single quotes stringType = "multi-line single quotes" loopExecTime = 0 for(o in 0..outerLoop){ startTime = System.nanoTime() for (j in 0..loopRun){ '''Hello I am a text!! This is an index variable: '''+j } execTime = System.nanoTime() - startTime loopExecTime = loopExecTime + execTime } loopExecTime = new BigDecimal(loopExecTime).divideToIntegralValue(outerLoop) println "Median execution time for ${stringType} is ${loopExecTime} nanoseconds. That is ${loopExecTime/1000/1000} milliseconds" println "-----------"