PHP 7 still uses a kind of linked list for collision resolution (trough 
zval.u2.next) and this is still an expensive operation.


________________________________
From: Pawel Por <porpa...@gmail.com>
Sent: Tuesday, May 16, 2017 12:28:36 PM
To: internals@lists.php.net
Subject: [PHP-DEV] Hashtable collision resolution in PHP 7

Hi

I'm trying to understand why PHP 7 hashtables are more efficient than
PHP 5 hashtables.
I'm confused about hashes that are in collision.
In PHP 5 there were a linked lists to resolve collisions.
What about PHP 7 ? Are there still linked lists ?
I read somewhere that the solution taken in PHP 7 is L1 cache friendly
so I conclude PHP 7 cannot resolve collisions using linked lists but
rather arrays.
If so please write me where the buckets that are in collision are
stored in memory I mean by what field the array is pointed to by (e.g.
zval.u2.next) and a few words of high level design of how it is
implemented.

thanks for help

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to