Hi Adrian, As I am seeing squid3 spends time in EventScheduler::schedule method. This method did not affected by the new AsyncCall code. Also this method is similar with squid 2.6 eventAdd function.
The only I can say is that possibly we are scheduling a huge number of events in squid3. If the time spend while creating the ev_entry class possibly we need a (better?) memory allocator. Also there is a for loop in this method. Most event scheduled with when=0 so they attached at the end (or near the end) of the events list (but we are running all the list). If we have a big number of events (1000 or more) it is possible to spend a lot of time here. But if this is the problem it is easy for someone to fix it, we must not worry about it at this time.... -- Christos > > CPU: AMD64 processors, speed 2613.46 MHz (estimated) > Counted CPU_CLK_UNHALTED events (Cycles outside of halt state) with a unit > mask of 0x00 (No unit mask) count 100000 > samples % image name symbol name > 27013 44.2713 squid EventScheduler::schedule(char > const*, void (*)(void*), void*, double, int, bool) > 2618 4.2906 libc-2.6.1.so memcpy > 2217 3.6334 libc-2.6.1.so memset > 1425 2.3354 squid MemPool::clean(long) > 913 1.4963 squid mem_node::dataRange() const > > Might want to fix that.. > > > > Adrian > >