Class::MOP::is_class_loaded()のXS版
書いた。
これはまさにXSが最適なケースで,Pure Perl版より16-24倍ほど速い。
For "strict": Rate pp xs pp 3692/s -- -96% xs 90163/s 2342% -- For "Class::MOP::Method": Rate pp xs pp 2999/s -- -96% xs 75188/s 2407% -- For "Foo::Bar", which does not exist: Rate pp xs pp 8219/s -- -94% xs 146161/s 1678% --
しかし,現行のClass::MOPは関連モジュールを全てロードしてからXSをロードするので,いくらXSコードを追加していってもロード時間には一切影響は出ない。XSの恩恵を十分に享受するためには,Pure Perl版のコードをメインモジュールの外に追い出したほうがいい。