tracker issue : CF-4173282

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

Trusted cache does not eliminate all file io checking

| View in Tracker

Status/Resolution/Reason: Closed/Fixed/

Reporter/Name(from Bugbase): Henry Ho / Henry Ho (Henry Ho)

Created: 07/18/2016

Components: Core Runtime, Parser/Compiler

Versions: 11.0

Failure Type: Performance Issue

Found In Build/Fixed In Build: CF11_Final /

Priority/Frequency: Major / All users will encounter

Locale/System: English / Win All

Vote Count: 6

Listed in the version 2016.0.03.300466 Issues Fixed doc
Problem Description:

With trusted cache enabled, one would expect it to not stress the disk io as much but CPU snapshot in VisualVM tells us that if cfinterface is used, or if a cfc extends another cfc, or invokes getMetaData(), CF will always invoke coldfusion.runtime.TemplateClassLoader.getLastModifiedTime() which in turns call java.io.File.lastModified() which slows down the server a lot, even on SSD.

Any Workarounds:

Avoid cfinterface, extends and getMetaData() as much as possible for performance, or use ram disk?

----------------------------- Additional Watson Details -----------------------------

Watson Bug ID:	4173282

External Customer Info:
External Company:  
External Customer Name: Henry Ho
External Customer Email:  
External Test Config: My Hardware and Environment details:

Attachments:

Comments:

I've noticed this too a lot for years in active apps that use getMetaData() and interfaces (often time ColdBox). My expectation is that there should be zero disk access if trusted cache is turned on related to reading .cfc files.
Comment by External U.
2172 | July 18, 2016 01:48:51 PM GMT
Workaround, use getComponentMetaDate() if possible
Comment by External U.
2173 | July 26, 2016 07:46:05 PM GMT
What concerns me is use of extends causing the file system check when trusted cache is enabled. Developers should not avoid using extends in favor of performance, it should be resolved in the engine.
Comment by External U.
2174 | August 04, 2016 02:49:21 PM GMT
Earlier getMetaData call was not respecting the Trusted Cache check. Fixed it. @QE: please verify.
Comment by Milan C.
2175 | August 22, 2016 08:40:01 AM GMT
Nice turnaround time on fixing this one! Good job Milan / Adobe.
Comment by External U.
2176 | August 22, 2016 09:34:20 AM GMT
Thx. Can you confirm that cfinterface/"implements" and "extends" is also fixed with this?
Comment by External U.
2177 | August 22, 2016 10:22:54 AM GMT
Bradley, With the fix, I don't see any calls to getLastModifiedTime() in the CPU profiler snapshots when using extended cfinterfaces as well.
Comment by Piyush K.
2178 | September 02, 2016 07:10:15 AM GMT