A Brief Introduction to Multi-Threading in PHP
- Foreword
- Execution
- Sharing
- Synchronization
- Pitfalls
#!/bin/bash | |
# This should be a path that the user executing the script can read and write | |
PHP_PATH=/opt/php-ts | |
# This should be a sensible version of PHP | |
PHP_VERSION=7.0.0 | |
# This should be a sensible mirror for your location | |
PHP_MIRROR=uk1.php.net | |
# This should be a released version of pthreads | |
PHP_PTHREADS=3.1.5 | |
# This should be set to 0 if you do not want to remove build directories |
This is just a small post in response to [this tweet][tweet] by Julien Pauli (who by the way is the release manager for PHP 5.5). In the tweet he claims that objects use more memory than arrays in PHP. Even though it can be like that, it's not true in most cases. (Note: This only applies to PHP 5.4 or newer.)
The reason why it's easy to assume that objects are larger than arrays is because objects can be seen as an array of properties and a bit of additional information (like the class it belongs to). And as array + additional info > array
it obviously follows that objects are larger. The thing is that in most cases PHP can optimize the array
part of it away. So how does that work?
The key here is that objects usually have a predefined set of keys, whereas arrays don't: