Skip to main content
Known Participant
December 11, 2017
Question

Slow Expression in AE 2018 (BUG?)

  • December 11, 2017
  • 3 replies
  • 3347 views

The same project that used to run at 30 fps in AE 2017 now runs at 1-8 fps in AE 2018. Over all, expressions seems a bit slower in 2018 but this is just extremely slow. I expect this might be a nasty bug hiding some where in some attempt to increase expression performance.

I'm utilising expressions to position multiple layers from by extracting their position from an array created with a text layer.

The purpose is to drive a slot simulator in After Effects where I spin multiple symbols and I control their positions from a master expression I've coded on a text layer and then for each symbol (layer) it get its own position by reading the output data (as a text string) from the text layer on the position property and then convert it in to an array by using the split(",") function and I think this might be a part of the problem.

I've linked to google drive where I've put a simplified AE file illustrating the problem. And two videos showing the difference in performance between AE 2017 and 2018.

AE-2018-Expressions-Bug.zip - Google Drive (open the file in both 2017 and 2018 to compare performance)

AE-2017-Good.MOV - Google Drive (if the videos doesn't play you can download them and they will work)

AE2018-Bad.MOV - Google Drive

This is a huge problem for me as I'm using this approach every day in my work and now it's completely unusable and I have no choice but to stay on the version 2017 until this is fixed. My greatest fear is that this problem is part of some global expression/JavaScript optimisation that completely destroys this kind of workflow and may never get fixed, Yelp!! ;-O

This topic has been closed for replies.

3 replies

Alexandre Parenteau
Adobe Employee
Adobe Employee
February 23, 2018

Thanks JoelArt for sharing the .aep. I was able to verify it has been fixed.

We fixed a big performance problem in 15.0.1 (build 73) related to text and expressions.

Could you please give it a try?

JoelArtAuthor
Known Participant
March 6, 2018

Thank you, it's working now.

Kevin J. Monahan Jr.
Community Manager
Community Manager
February 22, 2018

Hi JoelArt,

Have you solved this issue yet?

Thanks,
Kevin

Kevin Monahan - Sr. Community and Engagement Strategist – Adobe Pro Video and Audio
Dave_LaRonde
Inspiring
December 11, 2017

It's not the end of the world to keep using the 2017 version.

The 2018 version won't be worth anything until the first major bug fix.  Or the second major bug fix.

Community Expert
December 11, 2017

,System specs, OS and is you AE Version up to date? I have not experienced any real slowdowns in 2018. Without knowing what is going on in your comp it's pretty hard to guess where the hang-up may be. It could be a lot of things that are trying to render using GPU acceleration when you have incompatible drivers or preferences. I did take the time to take a look at your comp and I don't see anything  the text layer is adding to the efficiency of the project.

A couple of questions before I get started: Your comp is at 60fps. Any particular reason for that? It is non standard and can cause problems with some if not most media players. Your comp is also a nonstandard size. Is there any reason for that? Neither should make any difference in the time it takes to render a preview but if you are going to use custom composition settings you need to have a good reason for it.

I opened your sample comp on my MacBook Pro 15 (late 2017 loaded) in CC 2018 (latest build) and checked the two comps.

First,  you have a recursive expression going on here and that's going to slow things down the longer the comp runs. ththo

My first question is why are you creating an array with the source text layer when all you need is a single value. Change the source text expression to simply Math.round(time) * 600 will give you the same value as creating the array and then splitting the array in the position expression. Also, with the expression set up the way it is you can't type any new number in the Text layer and change anything, you have to edit the multiplication factor in the expression. You would get exactly the same movement by just using [value[0], time * 600 + value[1]] as the position expression. I'm not sure what you are trying to do here.

A better option, and one that would be much more useful would be to use source text or an expression slider to control speed and layer index to arrange position in an array. I do not see anything in your sample project that saves any time over simply adding the expression [value[0], (time * 600 + value[1]0 %600] to the position. The slow expression project is going to take longer to render a preview because it is doing more calculations on each frame. I did not check to see if there were any significant speed differences between AE versions. 

JoelArtAuthor
Known Participant
December 12, 2017
,System specs, OS and is you AE Version up to date? I have not experienced any real slowdowns in 2018. Without knowing what is going on in your comp it's pretty hard to guess where the hang-up may be. It could be a lot of things that are trying to render using GPU acceleration when you have incompatible drivers or preferences. I did take the time to take a look at your comp and I don't see anything  the text layer is adding to the efficiency of the project.

The hardware is pretty good, W10, 32GB RAM, 2 256 SSD (non raid), GeForce 900 series I think (can't check on it right now). Gfx drivers are probably not the absolutely latest version tho but everything runs fine in 2017 so then it would mean 2018 needs new drivers, maybe but don't think so as this is definitely expression related. Also I'v tried this on another computer as well with the same results.

A couple of questions before I get started: Your comp is at 60fps. Any particular reason for that? It is non standard and can cause problems with some if not most media players. Your comp is also a nonstandard size. Is there any reason for that? Neither should make any difference in the time it takes to render a preview but if you are going to use custom composition settings you need to have a good reason for it.

Yes, I'm doing graphics for games, specifically real-time animations at 60 fps, also the resolution is the same as the games resolution.

I opened your sample comp on my MacBook Pro 15 (late 2017 loaded) in CC 2018 (latest build) and checked the two comps.

Did you try the project file with the comp "1 slow expressions" in AE 2017 and then compare it's preview performance with AE 2018 version on the same system? (this is the most important thing to notice the extreme difference in performance)

The comp "2 expected performance" can largely be disregarded as it's only a reference of how the expression should perform roughly, If I run 1 and 2 in AE 2017 they perform largely equal, in AE 2018 not so much, 1 will preview at a snails phase in AE 2018.

First,  you have a recursive expression going on here and that's going to slow things down the longer the comp runs. ththo

Indeed, the recursion could very well be the culprit as of 2018, but not a problem at all in 2017, I understand what you are saying but I achieved solid 30 fps on my system with this setup in 2017 version with 3000 frames long compositions. The one depth recursion going on here is just fine and most necessary for my emulated game system to work. Note that this file is a boiled down representation of what I'm doing in my original file.

My first question is why are you creating an array with the source text layer when all you need is a single value. Change the source text expression to simply Math.round(time) * 600 will give you the same value as creating the array and then splitting the array in the position expression. Also, with the expression set up the way it is you can't type any new number in the Text layer and change anything, you have to edit the multiplication factor in the expression. You would get exactly the same movement by just using [value[0], time * 600 + value[1]] as the position expression. I'm not sure what you are trying to do here.

As I commented above, this file represents a completely boiled down version of my original file (I don't feel comfortable to share the project publicly except directly with Adobe for debugging if necessary as it's some what proprietary to my company). Thus this represents the composition structure needed. I've written my whole game engine in a text layers expression property to have the text layer output all the positions and states in an array (but in the form of a string) that many other layers listen to and extract their unique positions and states from. This setup is absolutely necessary as there is no way to pass around actual objects or arrays between properties in After Effects expressions, it could be considered a kind of a cheat to output objects and arrays as a text string and then parse them back into arrays or objects in other layers expressions. But I got it to work beautifully and has worked flawlessly in all versions before 2018 version.

A better option, and one that would be much more useful would be to use source text or an expression slider to control speed and layer index to arrange position in an array. I do not see anything in your sample project that saves any time over simply adding the expression [value[0], (time * 600 + value[1]0 %600] to the position. The slow expression project is going to take longer to render a preview because it is doing more calculations on each frame. I did not check to see if there were any significant speed differences between AE versions.

As stated above, this project/comp setup is representative of what is needed in my actual project and here just a simplified version homing in on just the performance issue. All of this runs with out any problems in the 2017 version on both of my tested systems.

Please, please, try the same comp "1 slow expressions" in AE 2017 and then compare it's preview performance with AE 2018 version on the same system? (this is the most important thing to notice the extreme difference in performance). Also, please look at the fps counter in the info panel. I have a performance difference of about 3x fps. On my home computer I get 19 fps in 2017 but only 6.5 fps in 2018.