blob: e0cf35e0a390941475fdce80470244ed32a1861a [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
import java.text.DecimalFormat
import java.util.*
import org.apache.ofbiz.base.util.cache.UtilCache
import org.apache.ofbiz.base.util.UtilValidate
import org.apache.ofbiz.security.*
import org.apache.ofbiz.entity.*
import org.apache.ofbiz.base.util.*
DecimalFormat decimalFormat = new DecimalFormat("#,##0.#######")
if (security.hasPermission("ENTITY_MAINT", session)) {
performanceList = []
calls = 1000
startTime = System.currentTimeMillis()
for (int i = 0; i < calls; i++) {
dummy = delegator.findOne("JobSandbox", [jobId : "PURGE_OLD_JOBS"], false)
}
totalTime = System.currentTimeMillis() - startTime
callsPerSecond = calls / (totalTime/1000)
perfRow = [:]
perfRow.operation = "findOne(false)"
perfRow.entity = "Large:JobSandbox"
perfRow.calls = decimalFormat.format(calls)
perfRow.seconds = decimalFormat.format(totalTime / 1000)
perfRow.secsPerCall = decimalFormat.format(1 / callsPerSecond)
perfRow.callsPerSecond = decimalFormat.format(callsPerSecond)
performanceList.add(perfRow)
calls = 10000
startTime = System.currentTimeMillis()
for (int i = 0; i < calls; i++) {
dummy = delegator.findOne("JobSandbox", [jobId : "PURGE_OLD_JOBS"], true)
}
totalTime = System.currentTimeMillis() - startTime
callsPerSecond = calls / (totalTime / 1000)
perfRow = [:]
perfRow.operation = "findOne(true)"
perfRow.entity = "Large:JobSandbox"
perfRow.calls = decimalFormat.format(calls)
perfRow.seconds = decimalFormat.format(totalTime / 1000)
perfRow.secsPerCall = decimalFormat.format(1 / callsPerSecond)
perfRow.callsPerSecond = decimalFormat.format(callsPerSecond)
performanceList.add(perfRow)
calls = 1000
startTime = System.currentTimeMillis()
for (int i = 0; i < calls; i++) {
dummy = delegator.findOne("DataSourceType", [dataSourceTypeId : "ADMIN_ENTRY"], false)
}
totalTime = System.currentTimeMillis() - startTime
callsPerSecond = calls / (totalTime / 1000)
perfRow = [:]
perfRow.operation = "findOne(false)"
perfRow.entity = "Small:DataSourceType"
perfRow.calls = decimalFormat.format(calls)
perfRow.seconds = decimalFormat.format(totalTime / 1000)
perfRow.secsPerCall = decimalFormat.format(1 / callsPerSecond)
perfRow.callsPerSecond = decimalFormat.format(callsPerSecond)
performanceList.add(perfRow)
calls = 10000
startTime = System.currentTimeMillis()
for (int i=0; i < calls; i++) {
dummy = delegator.findOne("DataSourceType", [dataSourceTypeId : "ADMIN_ENTRY"], true)
}
totalTime = System.currentTimeMillis() - startTime
callsPerSecond = calls / (totalTime / 1000)
perfRow = [:]
perfRow.operation = "findOne(true)"
perfRow.entity = "Small:DataSourceType"
perfRow.calls = decimalFormat.format(calls)
perfRow.seconds = decimalFormat.format(totalTime / 1000)
perfRow.secsPerCall = decimalFormat.format(1 / callsPerSecond)
perfRow.callsPerSecond = decimalFormat.format(callsPerSecond)
performanceList.add(perfRow)
createTestList = []
calls = 1000
startTime = System.currentTimeMillis()
for (int i = 0; i < calls; i++) {
dummy = delegator.makeValue("JobSandbox", [poolId : "pool", jobName : "Initial Name" + i, serviceName : "foo", statusId : "SERVICE_FINISHED", jobId : "_~WRITE_TEST~_" + i])
createTestList.add(dummy)
delegator.create(dummy)
}
totalTime = System.currentTimeMillis() - startTime
callsPerSecond = calls / (totalTime / 1000)
perfRow = [:]
perfRow.operation = "create"
perfRow.entity = "Large:JobSandbox"
perfRow.calls = decimalFormat.format(calls)
perfRow.seconds = decimalFormat.format(totalTime / 1000)
perfRow.secsPerCall = decimalFormat.format(1 / callsPerSecond)
perfRow.callsPerSecond = decimalFormat.format(callsPerSecond)
performanceList.add(perfRow)
calls = 1000
startTime = System.currentTimeMillis()
for (int i = 0; i < calls; i++) {
dummy = createTestList.get(i)
dummy.jobName = "This was a test from the performance groovy script"
dummy.store()
}
totalTime = System.currentTimeMillis() - startTime
callsPerSecond = calls / (totalTime / 1000)
perfRow = [:]
perfRow.operation = "update"
perfRow.entity = "Large:JobSandbox"
perfRow.calls = decimalFormat.format(calls)
perfRow.seconds = decimalFormat.format(totalTime / 1000)
perfRow.secsPerCall = decimalFormat.format(1 / callsPerSecond)
perfRow.callsPerSecond = decimalFormat.format(callsPerSecond)
performanceList.add(perfRow)
calls = 1000
startTime = System.currentTimeMillis()
for (int i = 0; i < calls; i++) {
dummy = createTestList.get(i)
dummy.remove()
}
totalTime = System.currentTimeMillis() - startTime
callsPerSecond = (double) calls / (totalTime / 1000)
perfRow = [:]
perfRow.operation = "remove"
perfRow.entity = "Large:JobSandbox"
perfRow.calls = decimalFormat.format(calls)
perfRow.seconds = decimalFormat.format(totalTime / 1000)
perfRow.secsPerCall = decimalFormat.format(1 / callsPerSecond)
perfRow.callsPerSecond = decimalFormat.format(callsPerSecond)
performanceList.add(perfRow)
calls = 100000
startTime = System.currentTimeMillis()
for (int i = 0; i < calls; i++) {
ptyMap = [:]
ptyMap.dataSourceTypeId = "ADMIN_ENTRY"
}
totalTime = System.currentTimeMillis() - startTime
callsPerSecond = calls / (totalTime / 1000)
perfRow = [:]
perfRow.operation = "new HashMap"
perfRow.entity = "N/A"
perfRow.calls = decimalFormat.format(calls)
perfRow.seconds = decimalFormat.format(totalTime / 1000)
perfRow.secsPerCall = decimalFormat.format(1 / callsPerSecond)
perfRow.callsPerSecond = decimalFormat.format(callsPerSecond)
performanceList.add(perfRow)
calls = 100000
startTime = System.currentTimeMillis()
for (int i = 0; i < calls; i++) {
ptyMap = UtilMisc.toMap("dataSourceTypeId", "ADMIN_ENTRY")
}
totalTime = System.currentTimeMillis() - startTime
callsPerSecond = calls / (totalTime / 1000)
perfRow = [:]
perfRow.operation = "UtilMisc.toMap"
perfRow.entity = "N/A"
perfRow.calls = decimalFormat.format(calls)
perfRow.seconds = decimalFormat.format(totalTime / 1000)
perfRow.secsPerCall = decimalFormat.format(1 / callsPerSecond)
perfRow.callsPerSecond = decimalFormat.format(callsPerSecond)
performanceList.add(perfRow)
utilCache = new UtilCache("test-cache", 0, 0, 0, false, null, "test-cache")
utilCache.put("testName", "testValue")
calls = 1000000
startTime = System.currentTimeMillis()
for (int i = 0; i < calls; i++) {
utilCache.get("testName")
}
totalTime = System.currentTimeMillis() - startTime
callsPerSecond = calls / (totalTime / 1000)
perfRow = [:]
perfRow.operation = "UtilCache.get(String) - basic settings"
perfRow.entity = "N/A"
perfRow.calls = decimalFormat.format(calls)
perfRow.seconds = decimalFormat.format(totalTime / 1000)
perfRow.secsPerCall = decimalFormat.format(1 / callsPerSecond)
perfRow.callsPerSecond = decimalFormat.format(callsPerSecond)
performanceList.add(perfRow)
testPk = delegator.makePK("DataSourceType", [dataSourceTypeId : "ADMIN_ENTRY"])
utilCache.put(testPk, "testValue")
calls = 1000000
startTime = System.currentTimeMillis()
for (int i = 0; i < calls; i++) {
utilCache.get(testPk)
}
totalTime = System.currentTimeMillis() - startTime
callsPerSecond = calls / (totalTime/1000)
perfRow = [:]
perfRow.operation = "UtilCache.get(GenericPK) - basic settings"
perfRow.entity = "N/A"
perfRow.calls = decimalFormat.format(calls)
perfRow.seconds = decimalFormat.format(totalTime / 1000)
perfRow.secsPerCall = decimalFormat.format(1 / callsPerSecond)
perfRow.callsPerSecond = decimalFormat.format(callsPerSecond)
performanceList.add(perfRow)
calls = 1000000
startTime = System.currentTimeMillis()
for (int i = 0; i < calls; i++) {
utilCache.put(testPk, "testValue")
}
totalTime = System.currentTimeMillis() - startTime
callsPerSecond = calls / (totalTime / 1000)
perfRow = [:]
perfRow.operation = "UtilCache.put(GenericPK) - basic settings"
perfRow.entity = "N/A"
perfRow.calls = decimalFormat.format(calls)
perfRow.seconds = decimalFormat.format(totalTime / 1000)
perfRow.secsPerCall = decimalFormat.format(1 / callsPerSecond)
perfRow.callsPerSecond = decimalFormat.format(callsPerSecond)
performanceList.add(perfRow)
context.performanceList = performanceList
}