少しでも処理時間を短くしたい

処理時間が長くなる4つの原因と、処理時間を短くする方法を紹介します。

実装方法1

<srai><sraix>を多用すると、その分言語解析処理等が増える為、処理時間が長くなります。
特に<sraix>は、その都度DBアクセスが発生する為、オーバーヘッドが大きくなります。
「#TEST」のように、先頭に「#」を付けると言語解析処理が行われない為、処理時間が短くなります。
ただし、<sraix>によるDBアクセスは発生します。

xAIML

実行結果

実装方法2

条件分岐だけのためのPredicateなど、DBに保持する必要のないPredicateは揮発性Predicateとして利用することで、処理時間が短くなります。

xAIML

実行結果

実装方法3

<template><li>id属性を指定しない場合、次のユーザ発話時に前回のシステム発話文章の言語解析処理が入る為、処理時間が長くなります。
id属性を指定している場合、言語解析処理が行われない為、処理時間が短くなります。

xAIML

実行結果

実装方法4

アップロードされたSET/MAPファイルを読み込む場合、DBアクセスが発生する為、処理時間が長くなります。
特に、一度のリクエストでレコード数が少ないSET/MAPファイルを参照するAIML記述の場合、SQL実行回数が増えてしまう場合があります。
SET/MAPファイルのレコード数が少ない場合は、<pattern>を使用することで処理時間が短くなります。

SETファイルを使用する場合

xAIML

SETファイル

SET/MAPファイルを使用しない場合

xAIML

実行結果