Performance

From DreamFactory
Jump to: navigation, search
DreamFactoryPerformance

Performance Considerations

DreamFactory is a web-based PHP application, and as such its performance will in part be determined by the hosting server's configuration. We recommend using the latest PHP release along with the [NGINX] and [PHP-FPM], all of which should be available or installable on any capable hosting service.

Several server monitoring tools exist for helping you tune your NGINX and PHP-FPM installations, the most notable being [Amplify].

Load Testing Your DreamFactory Environment

We recommend periodically load testing your DreamFactory environment during the development phase. You can choose from an array of load testing services such as [loader.io], or using load testing software such as [Apache Bench].

Performance and Scripted Services

DreamFactory supports the ability to create script-driven services using JavaScript, Node, PHP, and Python. We recommend using PHP-based scripted services for performance reasons, because PHP will necessarily use the [exec()] function to invoke the external program interpreter required to run JavaScript, Node, and Python scripts. Due to the way exec() works, a significant reduction in system performance will be incurred due to the creation of a new shell every time exec() is invoked.

Performance and Database Services

Like any other database-driven application, the performance of database services (MySQL, PostgreSQL, Oracle, etc.) will heavily depend upon the underlying database's tuning. Most notably, you should take care to properly index all tables used in conjunction with the service!

If you're using MySQL, consider picking up a copy of [High Performance MySQL] to learn more about MySQL tuning.