note 127161 added to function.grapheme-strlen

From: Date: Wed, 08 Jun 2022 14:23:48 +0000
Subject: note 127161 added to function.grapheme-strlen
Groups: php.notes 
Request: Send a blank email to php-notes+get-218563@lists.php.net to get a copy of this message
Benchmark that compares the speed between "strlen", "mb_strlen", "grapheme_strlen" on a short unicode string. TLDR; (tested with PHP 7.4 and 8.0) ======================================== strlen 0.0052 seconds ×1 mb_strlen 0.2471 seconds ×50 grapheme_strlen 2.2879 seconds ×450 ======================================== <?php $cycles = 100_000; $string = str_repeat('my flag 🏴󠁧󠁢󠁥󠁮󠁧󠁿', 50) ; $bench = function ($function) use ($string, $cycles) { for ($i = 0; $i < $cycles; $i++) { $function($string); } }; foreach (['strlen', 'mb_strlen', 'grapheme_strlen'] as $function) { $t = microtime(true); $bench($function); echo $function . ' ' . round(microtime(true) - $t, 4) . " seconds \n"; } ?> ---- Server IP: 45.112.84.4 Probable Submitter: 80.90.12.131 (proxied: 147.161.245.106) ---- Manual Page -- https://php.net/manual/en/function.grapheme-strlen.php Edit -- https://main.php.net/note/edit/127161 Del: integrated -- https://main.php.net/note/delete/127161/integrated Del: useless -- https://main.php.net/note/delete/127161/useless Del: bad code -- https://main.php.net/note/delete/127161/bad+code Del: spam -- https://main.php.net/note/delete/127161/spam Del: non-english -- https://main.php.net/note/delete/127161/non-english Del: in docs -- https://main.php.net/note/delete/127161/in+docs Del: other reasons-- https://main.php.net/note/delete/127161 Reject -- https://main.php.net/note/reject/127161 Search -- https://main.php.net/manage/user-notes.php

« previous php.notes (#218563) next »