Which Prolog-dependent factors are most crucial for good Logtalk performance?
Logtalk compiles objects assuming first-argument indexing for static code. First-argument indexing of dynamic code, when available, helps improving performance due to the automatic caching of method lookups and the necessary use of book-keeping tables by the runtime engine (this is specially important when using event-driven programming). Dynamic objects and static objects containing dynamic predicates also benefit from first-argument indexing of dynamic predicates. In addition, message processing may imply two meta-calls (in order to verify if a message is valid and to translate between the message term and its internal representation). Therefore, good Prolog performance on meta-calls translates to improved message processing performance.