Why is my bot slow?
There are many things that can affect your bot's performance, and many things you can do to improve your bot's performance.
Learning OptionsA common mistake users make is to enable all of the bot's learning options. Many of these options are experimental advanced artificial intelligence features, and not required, or even desired for most bots. They also require extra processing and memory, and can cause performance issues.
The options that negatively affect performance are:
Consciousness - This simulates the human brain's conscious awareness by keeping a consciousness level for every object in memory. This makes recently accessed objects and their relationships have a high level of priority. For example if you were talking about apples, and you asked the bot what kind of fruit it likes, it would say apples, even though it likes apples and oranges. This processing is not required for most bots, and is recommended to be disabled.
Comprehension - When a bot learns a new response, comprehension will attempt to generalize what it has learned into a pattern and template. This is an experimental feature, and while it can make the bot learn in interesting ways, it does require extra processing, and will have the bot program its last state script, cause the script to become very large, which can significantly affect performance. This can also cause the bot to have undesirable responses. This processing is not required for most bots, and is recommended to be disabled.
Learning - Learning will have the bot learn every users response as a new response to its previous response. This is normally not desirable for most types of bots, as bad responses from users can make the bot have bad responses. It is better to use correction to correct a bot's response, than learning. This processing is not required for most bots, and is recommended to be disabled.
Emotions - Emotions let the bot respond with emotes which can display emotions on their avatar. Emotions keep track of their state and can also be learned when learning is enabled. Emotions are not normally required, so can be disabled to improve performance.
Timeouts - The learning options also include a "Script Timeout" and a "Response Timeout". You can use these to limit the amount of time the bot will spend processing scripts, or searching for responses. This will make the bot's responses faster, but can also lead to fewer response matches and more default responses.
ScriptsYou bot will process its scripts on every user input. The more scripts you have, and the bigger the scripts, the longer it will take to process input. Be careful of importing really big scripts, and don't have duplicate scripts.
There are a lot of public domain AIML scripts available, many of these are very big, and some of the bigger ones are not very useful. AIML has some limitations which sometimes makes programmers write things in a inefficient fashion.
For example the AIML script for binary conversion checks "convert 1 to binary" for every number 1-1000. This could be done better in Self where you could have a function that does the conversion, so it would work for any number not just 1-1000, and would have 1 pattern instead of 1000.
Another example is the AIML knowledge script. It answers "what is xxx" questions for thousands of different topics. Instead you can use the Self "WhatIs" script that looks up "what is xxx" questions on Freebase or WikiData. This is more efficient, and can answer a much larger number of questions.
Server PerformanceYou bots run on a shared server with other bots. If the server is busy, it can affect your bot's performance. If you bot needs extra power, we also have a commercial server at http://www.paphuslivechat.com which has fewer bots running on it. Through Paphus Live Chat we also offer dedicated and private hosting solutions. For more info contact [email protected]