Optimize zend_string equality check with hash key

From: Date: Fri, 05 Apr 2019 07:26:30 +0000
Subject: Optimize zend_string equality check with hash key
Groups: php.internals 
Request: Send a blank email to internals+get-105090@lists.php.net to get a copy of this message
Hello, I was surprised to find out that equality checks on zend_string do not take advantage of the fact that in many cases we have a hash key available that can be utilized in a quick bailout path without having to resort to a costly memcmp on the value. I recommend to modify zend_string_equal_content like so: static zend_always_inline zend_bool zend_string_equal_content(zend_string *s1, zend_string *s2) { if (ZSTR_LEN(s1) != ZSTR_LEN(s2)) { return 0; } if (ZSTR_H(s1) && ZSTR_H(s1) != ZSTR_H(s2)) { return 0; } return zend_string_equal_val(s1, s2); } Thoughts? -- Benjamin Coutu ben.coutu@zeyos.com

« previous php.internals (#105090) next »