• Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
    Dedicated community for Japanese speakers
  • 한국 커뮤니티
    Dedicated community for Korean speakers
Exit
0

CF2018 CFFile Slower

Advocate ,
Dec 04, 2019 Dec 04, 2019

Copy link to clipboard

Copied

We seem to be easily be able to reproduce an issue with CFFile in CF 2018.

 

Doing a simply copy action on a file in 2018 seems to be 3-4 times slower then CF 11.

 

When doing this on a local file it can take around 1-2ms to copy but on CF2018 this can take up to 15ms.

 

The issue is worse where we use it as we copy using S3:/ - this can be the difference of 300ms on CF11 to 900ms on CF 2018

 

When dealing with a lot of images, these increases can make things take a lot longer.

 

 

So the question is, has something changed in the recent version of CF to cause a CFFile to work differently?

 

We are testing on Windows Server 2012 with CF 11 HF 18 and CF 2018 HF 6

 

We have done the same test on Windows Server 2016 with the same results.

 

All have the same JVM settings and specs.

 

Two fresh installs on different servers and one upgrade, all produce the same results.

 

 

Any ideas before I submit a bug. Just incase I am missing anything obvious.

TOPICS
Advanced techniques

Views

2.9K

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Dec 04, 2019 Dec 04, 2019

Copy link to clipboard

Copied

There's no obvious difference to make CFFILE copy ops slower in CF2018 vs 11, no.

 

But while you've done well to do your comparison on the same machine, I wonder if you may find that there's a difference between CF11 and 2018 that you are not considering, and indeed one that cold be of your own doing, during the install of CF2018. For instance, it offers a new choice (that I think 11 did not) about dev/production/prod+secure. And while CF11 (and 10, even) offered the "secure profile" option, maybe you didn't take it in 11 but did in 2018.

 

Or there may well be some other difference in the Admin/configuration of CF. Fortunately, those "secure profile" differences as well as all other CF admin differences would be readily observable in the CF admin "settings summary" page, in both versions. In fact, if you copy the text (of that frame in the CF Admin) into any good compare tool, you can readily spot differences--and even doing such a comparison of such different versions of CF will look good, especially in my favored tool for the job, Beyond Compare. 

 

Let us know if you can do that such a comparison, or if something else I say may have triggered something else for you to consider.


/Charlie (troubleshooter, carehart.org)

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Advocate ,
Dec 04, 2019 Dec 04, 2019

Copy link to clipboard

Copied

Thanks for the reply Charlie.

 

I should have mentioned that I did check the secure profile side of things. I have done a comparison of all the setttings too (those that exist in both)

 

There seems to be no difference, although that is why I wanted to ask here first in case there could be a specific setting that may cause an issue with CFFile. 

 

I even backed up the settings from CF11 and restored on CF2018 (car file) to see if any difference was made there.

 

 

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Enthusiast ,
Dec 04, 2019 Dec 04, 2019

Copy link to clipboard

Copied

I was complaining about S3 (& regular file) performance back in 2015.  We use Windows too and I found a third-party portable command line (CLI) executable called S3Express that was so much better for our needs.  Here's the comparison:

 

27mb ZIP Upload to S3 Comparison
Adobe ColdFusion 10: 110 seconds
AmazonS3 CLI: 40 seconds
S3Express: 16 seconds

 

Here's the sample CFML code.
https://gist.github.com/JamoCA/727120f97b33fed5528a

 

For bulk copying files, we switched using an executable called FastCopy.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Advocate ,
Dec 06, 2019 Dec 06, 2019

Copy link to clipboard

Copied

For reference, submitted a bug - https://tracker.adobe.com/#/view/CF-4206264

 

 

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Dec 14, 2019 Dec 14, 2019

Copy link to clipboard

Copied

I have voted in the tracker. 

In the meantime, as you're on Windows, here's an idea you could test:

<cfset startTime=getTickCount()>

<!--- The * at the end is vital for copying a file --->
<cfexecute name="C:\Windows\System32\xcopy.exe" 
arguments="C:/Temp/testimg1.JPG C:/Temp/testimg2.JPG*" timeout="20">
</cfexecute>

Execution time = <cfoutput>#getTickCount() - startTime#</cfoutput> milliseconds.

 

to compare with your existing code,

 

<cfset startTime=getTickCount()>
<cffile action = "copy" source = "C:/Temp/testimg1.JPG" destination = "C:/Temp/testimg2.JPG">
Execution time = <cfoutput>#getTickCount() - startTime#</cfoutput> milliseconds.

 

 

 

 

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Advocate ,
Dec 14, 2019 Dec 14, 2019

Copy link to clipboard

Copied

Thanks for the vote and the idea.

 

This mainly affects us on S3 transfers though. We do very few local transfers, I just included these as part of the testing for the issue.

 

Could be that a third party option for S3 will be required. Which is a pain as we need to change a load of stuff!

 

 

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Dec 14, 2019 Dec 14, 2019

Copy link to clipboard

Copied

LATEST

When you use S3, you're really using HTTPS instead of an actual "filesystem". (You may already know that, sorry if so.) And there are all kinds of things that can change in the Java version you're using that might affect both local filesystem interaction and HTTPS/S3 interaction. It's convenient to be able to do both of these in CF, but you'll get more consistent results for complex operations if you use CFEXECUTE to run a local OS command - especially for anything that iterates through a lot of files/directories.

 

That said, I'd still file a support ticket for this kind of thing and see what Adobe says.

 

Dave Watts, Eidolon LLC

Dave Watts, Eidolon LLC

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Resources
Documentation