I have been using New Relic to monitor my app and I have been noticing some slow calls coming from fuel autoloader and fuel core init. I have a feeling is the actual server perhaps because im hammering it with 200 concurrent requests. However, I wanted to get you guys input on this. I created a controller with one method and it only returns result true (json encoded). And im calling this method with 200 concurrent connections. I have attached a trace for this call. I still cant think why some calls take at least 10s. I'm running on ec2 with a large instance, apache2, facgi, mpm_worker.
It's logical that, in a call analysis, a lot of time is spend in the autoloader, given the fact that everyhing is a class and needs to be loaded. In most cases, business logic is very light,
What is not logical, is that a call to the autoloader takes 3 seconds. This smells like an IOPS issue, perhaps the disk IO is maxed out at 200 reqs/s? I'm not familiar with EC2, but if you can create a few Mb tmpfs, and copy your code to it, all file I/O will comes from your tmpfs 'ramdisk', ruling out I/O issues.
Then I'm clueless. I've never seen such figures, Autoloader::load() is only a handful of lines of code, and doesn't do anything fancy other then loading class files.
You don't have a class that contains an _init() static method that needs a lot of processing?