PHP 初心者が WordPress の プラグイン 作成 ! part59 ( ヘッドレスブラウザが遅い件 その1)

この記事では PHP 初心者 が WordPress プラグイン を 作成 します。 part59 ではヘッドレスブラウザの動作が遅い件について考えたいと思います。

ようやくWordPressの投稿からココナラブログへの書き込みに成功しました😆

PHP 初心者が WordPress の プラグイン 作成 ! part58 ( プラグインの動作確認 一発成功!)

しかし、プラグインの動作が遅く1つの記事を投稿するのにたくさんの時間を費やしてしまう状態です。
公開ボタンを押してから体感的に2~3分くらいかかっています。

一番のネックはヘッドレスブラウザ

ヘッドレスブラウザの動きが良くないのは既知の事実でした。
見て見ぬふりをしてきたのですがこのへんで軽く調査をしておきたいと思います。

調査しているとこんな記事を見つけました。

Chrome – SeleniumでChromeのヘッドレスブラウザの動作が遅い|teratail

まさに私が悩んでいることそのものです。

他に有効そうなものはあったが、決定的に速度を変えたのはUAの設定。
適当な文字列でも設定すれば早くなった。

という回答が付いています。UAとはユーザーエージェントのことですね。
ふむふむ・・・。

設定見直し

私が設定したヘッドレスブラウザの項目と項目値です。

$options = [
    'headless' => true,
    'noSandbox' => true ,
    'sendSyncDefaultTimeout' => 100000,
    'windowSize'      => [1920, 1000],
    'userAgent' => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36',
    'enableImages'    => false,
];

userAgentというのがユーザーエージェントのことです。
ちゃんと設定しているんですけどねぇ(´・ω・`)

・・・もしかしてちゃんと設定しているから遅いのかもしれません。

以下のように書き換えてみます。

'userAgent' => 'hogehoge',

WordPressから投稿して確認していては時間がかかりすぎるのでまたindex.phpで試したいと思います。
ココナラヘルパをインスタンス化した際にココナラのサイトにアクセスします。
アクセス後、読み取りが完了するまでの時間を評価してます。

処理速度を測る

PHPでは以下のように実装して処理速度を測れるそうです。

PHPの処理速度を計測 – Qiita

<?php
require_once 'class.coconara-helper.php';

// クラスをまとめてインポート(PHP7.0.0から)
use com\ik_genety\plugin\coconara\{Coconara_Helper};

$time_start = microtime(true);

$coconara = new Coconara_Helper(true);

$time = microtime(true) - $time_start;
echo "{$time} 秒";

?>

 

確認

まずはユーザエージェントの設定変更をしない場合

17.770415067673 秒

次にユーザエージェントの設定をhogehogeにした場合

16.008577108383 秒

・・・1回しか計測していませんが大差ありませんね😑

ウィンドウサイズの設定を省略してみる

ブラウザのサイズが大きすぎるのかもしれません。

windowSizeの値を省略してみます。(ユーザーエージェントの値は元に戻しています。)

15.996386051178 秒

やはり対して変わりません。

 まとめ

ヘッドレスブラウザが遅い原因を調査しました。

何もわかりませんでした(笑)

やはりこれはこのまま・・・いやいやもう少しだけ調査してみようと思います😫

今日はここまで!