"As you can see, the invocation is similar to the
invocation of any other Asterisk dialplan application. However,
there is one major difference between a regular dialplan
application and an AGI script—the resources an AGI script
consumes.While an internal application consumes a well-known set of
resources from Asterisk, an AGI script simply hands over the
control to an external process. Thus, the resources required to
execute the external AGI script are now unknown, while at the same
time, Asterisk consumes the resources for managing the execution of
the AGI script.Ok, so BASH isn't much of a resource hog, but what
about Java? This means that the choice of programming language for
your AGI scripts is important. Choosing the wrong programming
language can often lead to slow systems and in most cases,
non-operational systems.
"While one may argue that the underlying programming language
has a direct impact on the performance of your AGI application, it
is imperative to learn the impact of each. To be more exact, it's
not the language itself, but more the technology of the programming
language runtime that is important. The following table tries to
distinguish between three programming languages' families and their
applicability to AGI development."