Performance

From DreamFactory
Jump to: navigation, search
DreamFactoryPerformance
(Created page with "== 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...")
 
m
Line 7: Line 7:
 
== Load Testing Your DreamFactory Environment ==
 
== Load Testing Your DreamFactory Environment ==
  
We strongly recommend periodically load testing your DreamFactory environment during the development phase. You can choose from an array of load testing services such as [[https://loader.io loader.io]], or using load testing software such as [[https://httpd.apache.org/docs/2.4/programs/ab.html Apache Bench]].
+
We recommend periodically load testing your DreamFactory environment during the development phase. You can choose from an array of load testing services such as [[https://loader.io loader.io]], or using load testing software such as [[https://httpd.apache.org/docs/2.4/programs/ab.html Apache Bench]].
  
 
== Performance and Scripted Services ==
 
== Performance and Scripted Services ==
Line 17: Line 17:
 
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!
 
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, we strongly recommend picking up a copy of [[https://www.amazon.com/High-Performance-MySQL-Optimization-Replication/dp/1449314287 High Performance MySQL]].
+
If you're using MySQL, consider picking up a copy of [[https://www.amazon.com/High-Performance-MySQL-Optimization-Replication/dp/1449314287 High Performance MySQL]] to learn more about MySQL tuning.

Revision as of 14:53, 9 April 2018

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.