tracker issue : CF-4201966

select a category, or use search below
(searches all categories and all time range)
Title:

Performance coldfusion 2016 vs 2011 / 9 reading query or array data by indexed notation

| View in Tracker

Status/Resolution/Reason: Closed/Withdrawn/CannotReproduce

Reporter/Name(from Bugbase): T D / ()

Created: 04/12/2018

Components: Performance

Versions: 2016

Failure Type: Performance Issue

Found In Build/Fixed In Build: 2016.0.03.301771 /

Priority/Frequency: Normal / All users will encounter

Locale/System: ALL / Win 2016

Vote Count: 0

Problem Description: Coldfusion 2016 performs poorly compared to coldfusion 2011 and coldfusion 9 will using indexed notation to access query or array data. The url compares coldfusion 2016 / 2011/ 9 performance on this issue, the actual cfml code is included on the page. 

See  http://136.144.177.152/bug-adobe.asp (live example)

Attachments:

Comments:

Thijs, Can you try this with the latest updates on CF11 and CF2016. I tried this on two different m/c. I don't see much difference b/w CF11 and CF2016. (trusted cache off) --------------------------------------------- machine 1 ----------------------------------------------- java.version: 1.8.0_112 java.vm.name: Java HotSpot(TM) 64-Bit Server VM PROCESSOR_IDENTIFIER: Intel64 Family 6 Model 58 Stepping 9, GenuineIntel PROCESSOR_ARCHITECTURE: AMD64 coldfusion: 11,0,14,307976 Developer Populating 2500 rows, 69 ms Indexed notation with row pointer: Average = 0.0392 / Min 0 / Max 1 coldfusion: 2016,0,06,308055 Enterprise NUMBER_OF_PROCESSORS: 4 Populating 2500 rows, 51 ms Indexed notation with row pointer: Average = 0.0344 / Min 0 / Max 1 -------------------------------------------- machine 2 ------------------------------------------------ java.version: 1.8.0_112 java.vm.name: Java HotSpot(TM) 64-Bit Server VM PROCESSOR_IDENTIFIER: Intel64 Family 6 Model 58 Stepping 9, GenuineIntel PROCESSOR_ARCHITECTURE: AMD64 NUMBER_OF_PROCESSORS: 8 coldfusion: 2016,0,06,308055 Developer Populating 2500 rows, 34 ms Indexed notation with row pointer: Average = 0.0172 / Min 0 / Max 9 coldfusion: 11,0,14,307976 Developer Populating 2500 rows, 39 ms Indexed notation with row pointer: Average = 0.0168 / Min 0 / Max 5
Comment by Piyush K.
27493 | April 16, 2018 08:45:33 AM GMT
.
Comment by T D.
27494 | April 17, 2018 08:22:02 AM GMT
Hi Nayak, Unfortunately this did not make any difference (see http://136.144.177.152/bug-adobe.asp). Could it be a hardware/vps issue in combination with coldfusion 2016. I already tested the performance of the different coldfusion versions on a different OS (windows 2012 instead of windows 2016), same results. If desired I can give you access to the VPS (all coldfusion version are running on the same VPS) so you can pin point the problem and reason why there is a big performance difference on our servers.
Comment by T D.
27495 | April 17, 2018 08:27:12 AM GMT
Thijs, As noted earlier, I've not been able to observe the issue with the supplied test code. BTW, thanks for narrowing down you issue to the test code. The live link does not appear to be working and there seems to be no record in this report of the magnitude of the difference you have (or had) observed b/w CF11 and CF2016. I'd suggest you use some CPU profiling tool (jvisualVM for exmaple) to compare the CPU usage of the 2 set-up where you are observe the diff. I verified results on my workstation, again. sharing the results below. output: 11,0,14,307976 Populating 1000 rows, 48 ms 43ms a 2016,0,05,303689 Populating 1000 rows, 19 ms 37ms test code: <cfoutput>#server.coldfusion.productversion#</cfoutput><br> <!--- Create a query ---> <cfset testQuery = QueryNew("ColumnA,ColumnB,ColumnC,ColumnD,ColumnE,ColumnF,ColumnG,ColumnH,ColumnI,ColumnJ,ColumnK,ColumnL,ColumnM,ColumnN","VarChar,VarChar,VarChar,VarChar,VarChar,VarChar,VarChar,VarChar,VarChar,VarChar,VarChar,VarChar,VarChar,VarChar")> <Cfset init = GetTickCount()> <cfset rowCount = 1000> <!--- Populate the query ---> <Cfloop from=1 to=#rowCount# index="x"> <cfset QueryAddRow(testQuery, 1)> <cfloop index="intLetter" from="#Asc('A')#" to="#Asc('N')#" step="1"> <cfset temp = QuerySetCell(testQuery, "Column#chr(intLetter)#", "Row #x# column #intLetter#", x)> </cfloop> </cfloop> <cfoutput><br>Populating #rowCount# rows, #GetTickCount()-init# ms<br></cfoutput> <Cfset init = GetTickCount()> <cfloop query="testQuery"> <cfloop list="#testQuery.columnList#" index="key"> <Cfset xx = #testquery[key][testQuery.currentrow]#> <!--- <cfoutput>#xx#</cfoutput><br> ---> </cfloop> </cfloop> <cfoutput>#GetTickCount()-init#</cfoutput>ms<br>
Comment by Piyush K.
29134 | June 25, 2018 12:33:34 PM GMT
closing this since the issue is not reproducible on other CF instances. Thijs, If you could share the CPU/memory profiling logs from your CF set-up, and that points to an issue in CF runtime, we can reopen this.
Comment by Piyush K.
29458 | August 10, 2018 10:03:38 AM GMT