Re: Inserting string keys in arrays at any position

From: Date: Wed, 08 Nov 2017 19:17:34 +0000
Subject: Re: Inserting string keys in arrays at any position
References: 1 2  Groups: php.internals 
Request: Send a blank email to internals+get-101111@lists.php.net to get a copy of this message
On 11/3/2017 7:46 AM, Bishop Bettini wrote:
On Fri, Nov 3, 2017 at 9:51 AM, Thomas Hruska <thruska@cubiclesoft.com> wrote: http://nikic.github.io/2014/12/22/PHPs-new-hashtable-implementation.html
Ah. Very clever and cool. That memory layout does indeed pose a problem with random order insertions of string keys. Detachable nodes are more useful to me in C++ for a general-purpose data structure but I can see the benefits of doing this for PHP 7, which takes advantage of the most common array usage patterns (i.e. an array). After reading that post, I was inspired to implement PackedOrderedHash: https://github.com/cubiclesoft/cross-platform-cpp I can definitely see why PHP 7 adopted the structure. My own benchmarks of PackedOrderedHash show significant performance improvements. You'll note that in PackedOrderedHash I excluded inserting just anywhere - likely for the same reason that PHP doesn't offer such a feature. I still think PHP could natively offer string key-based insertions even though it'll require moving elements of an array around. That's likely to be faster than rebuilding the whole array. Thanks for the long writeup and Nikic for the blog post. -- Thomas Hruska CubicleSoft President I've got great, time saving software that you will find useful. http://cubiclesoft.com/ And once you find my software useful: http://cubiclesoft.com/donate/

« previous php.internals (#101111) next »