虚 玄 (@xuanxu) 在 一下午从看jdk 24对indexOf的优化到去B站补完Ave Mujica 中发帖
8320448: Accelerate IndexOf using AVX2 · openjdk/jdk@8e72d7c
从library_call里面找到inline_string_indexOf,跳到stubGenerator里面,找到generate_string_indexof,最后生成出三个版本的函数保存到StubRoutines::_string_indexof_array里。
三个版本分别对应StringUTF16以及StringLatin1两个编码互相进行搜索。
enum ArgEnc {
LL, // Latin1 to Latin1
UL, // UTF16 to Latin1
UU, // UTF16 to UTF16
last
};
在java里调用String::indexOf时内部带有@IntrinsicCandidate注解就会被jvm...