(2016/7/26 9:15)タイトルを変更して所感などを追記しました PHPのソースコードを眺めていたところ、PHP7からstrposやstrstrの内部実装が変更されており、高速「っぽい」文字列マッチングアルゴリズムが導入されていることに気づきました。 具体的には、Zend/zend_operators.hにあるzend_memnstrの実装が変更されており、検索文字列が3バイト以上かつ検索対象の文字列が1024バイト以上の場合にSunday algorithmで文字列マッチングを行います。 Sunday algorithmとは アルゴリズムの教科書にも出てくる文字列マッチングアルゴリズムとしてBM法(Boyer-Moore algorithm)がありますが、Sunday algorithmはBM法の派生アルゴリズムの一つです。 Sunday algorithm このアルゴリズムの概
![PHP7調査(39) strposやstrstrに高速っぽい実装が入ったけど実は遅いのでは疑惑 - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/3441d00300d48f39ffd0f84a3365ef5c8b29bce2/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-412672c5f0600ab9a64263b751f1bc81.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9UEhQNyVFOCVBQSVCRiVFNiU5RiVCQiUyODM5JTI5JTIwc3RycG9zJUUzJTgyJTg0c3Ryc3RyJUUzJTgxJUFCJUU5JUFCJTk4JUU5JTgwJTlGJUUzJTgxJUEzJUUzJTgxJUJEJUUzJTgxJTg0JUU1JUFFJTlGJUU4JUEzJTg1JUUzJTgxJThDJUU1JTg1JUE1JUUzJTgxJUEzJUUzJTgxJTlGJUUzJTgxJTkxJUUzJTgxJUE5JUU1JUFFJTlGJUUzJTgxJUFGJUU5JTgxJTg1JUUzJTgxJTg0JUUzJTgxJUFFJUUzJTgxJUE3JUUzJTgxJUFGJUU3JTk2JTkxJUU2JTgzJTkxJnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmcz01OWFkNTAzMWE4ZGEwYWI1ZjEzNTY5MTExOTA5NmQ5NA%26mark-x%3D142%26mark-y%3D57%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9NzcwJnR4dD0lNDBobncmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT0zNiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPWEyNTNhODRlM2ZlZmUwMWMyODA1YjQwNGM0NDM0YTgy%26blend-x%3D142%26blend-y%3D436%26blend-mode%3Dnormal%26txt64%3DaW4gS0xhYiDmoKrlvI_kvJrnpL4%26txt-width%3D770%26txt-clip%3Dend%252Cellipsis%26txt-color%3D%2523212121%26txt-font%3DHiragino%2520Sans%2520W6%26txt-size%3D36%26txt-x%3D156%26txt-y%3D536%26s%3De948094f85819df33c5763e781a89852)