Introduction
This article series covers the many ways to tune FME performance across different FME applications and at different stages of project development.
On a computer, work uses system resources. If performance is measured by the time it takes to do useful work, then excessive resource use or time wasted on non-essential work hinders performance.
Many of these factors are diagnosed or reported in the FME log file, so this series covers how to read it in detail. This helps determine whether overall performance slows or a bottleneck occurs at a specific stage of the process.
Previously, this article series was contained within a single article. We have since broken the article into separate articles so we could expand on each topic and make it easier to find via search. Click the links below to jump to a topic of interest.
Performance Tuning Articles
System Hardware and Configuration
The hardware FME runs on, as well as its configuration, can significantly affect performance.
Workspace Authoring & Design Patterns
FME includes a few tools that help a workspace run faster while you author and debug it, speeding up the authoring process. Design your workspace for maximum performance as you set it up. Various design patterns can improve performance.
Post-Mortem Performance Tuning
Analyzing a process's results to assess or improve future performance is called post-mortem debugging. In FME, the key result of a process is the log file.
Therefore, before tuning a workspace, it's important to understand how to read an FME log file. Without this knowledge, a user will often jump to incorrect conclusions about a translation and start looking for performance issues in the wrong places.
Database Performance Tuning
Databases are an important component of many datasets, and the log file will help us assess database performance and how well FME interacts with it.
FME Updates and Improvements
As FME is developed and refined over time, it continues to see numerous performance improvements. These can be classified as two different types of upgrades: automatic and premeditated.
FME Memory Management
Memory Management is primarily an automatic process that the FME engine performs during translation. However, log file messages related to memory management can be useful to inspect.
Additional Performance Tuning Tips
In FME Workbench, you can run a profile of your FME Workspace to obtain a detailed log of how much time is spent in each underlying factory or function. For FME versions 2025.0 and below, use Tools -> Edit Header to add the directive: FME_PROFILE_RESULT_CSV, i.e.: FME_PROFILE_RESULT_CSV C:\TEMP\profile.csv
- The profile directive is not supported on FME Flow.
- Remember to remove the profile directive for your production workspace, as profiling can also impact performance.
For 2025.1+, see Monitoring Workspace Performance.
It's sometimes worth using a Performance Monitoring tool, such as Performance Monitor (perfmon), to log a process's CPU and memory usage. Optionally, Process Explorer (procexp) and other System Utilities in context may provide some benefit as well.
Additional Resources
- Design for Performance [FME Academy]
- Optimize Workspace Performance [FME Academy]
- How FME Improves Performance with Bulk Mode [Documentation]
- Feature Caching and Performance [Article]
- Benchmarking FME Form [Article]