Direct Answer
There is no fixed layer-count threshold where expressions become unusable. Expressions typically preserve maintainability for hundreds of synchronized layers, but keyframes become preferable when expression evaluation prevents stable real-time preview or dominates render time. The trade-off depends on expression complexity, hardware, After Effects version, and comp settings—not layer count alone.
Confirmed Behavior
- Expressions are evaluated by the expression engine at request time (preview, render, scrub). Keyframes store precomputed values.
- Converting an expression to keyframes (Animation → Keyframe Assistant → Convert Expression to Keyframes) bakes the current result and removes runtime evaluation for that property.
- Baking is one-way unless you keep an expression-driven master comp or duplicate.
Likely Explanation
Overhead scales with the number and cost of evaluated expression properties, dependency chains, and frames requested. Simple per-layer expressions (e.g., thisComp.layer("Controller").transform.position) on hundreds of layers may be acceptable. A few heavy expressions with loops, string parsing, sampleImage(), or cross-comp lookups can be worse than thousands of simple links. Multi-frame rendering and caching behavior also vary by AE release, so the same comp can perform differently after upgrades.
Practical Verification Steps
- Duplicate the comp. In one copy, select expression-driven properties and convert to keyframes. Keep the original.
- Compare Composition panel preview responsiveness at target resolution and frame rate.
- Render both copies with identical output settings and compare render durations.
- If only preview is slow, test with draft settings, proxies, or temporarily disabling expressions before baking.
- Re-test after AE updates or hardware changes.
Optimization Before Conversion
- Simplify expressions: avoid per-frame string operations, unnecessary property lookups, and repeated calculations.
- Reference a single controller layer or null instead of chaining expressions.
- Reduce affected properties (e.g., drive only Position, not Position+Scale+Rotation).
- Use guide layers or precomps for static/repetitive elements.
- Consider pre-rendering heavy sections to footage.
Diagnostic Question
What is the actual bottleneck—Composition panel preview lag, final render time, or both—and are the expressions simple property links or complex per-frame calculations? This determines whether baking, optimization, or preview settings changes are the right next step.