diff options
author | root <root> | 2007-12-07 19:23:48 +0000 |
---|---|---|
committer | root <root> | 2007-12-07 19:23:48 +0000 |
commit | 39ca7b64db757c30ab6f0dc5dad63206f1d5a375 (patch) | |
tree | 2d5ee139f82e12e2d23c1ef4149bfeb58e94eda0 /ev.pod | |
parent | 1ef940ed393da8f8d74505196399215d6bb21016 (diff) |
*** empty log message ***
Diffstat (limited to 'ev.pod')
-rw-r--r-- | ev.pod | 12 |
1 files changed, 7 insertions, 5 deletions
@@ -2257,6 +2257,12 @@ In this section the complexities of (many of) the algorithms used inside libev will be explained. For complexity discussions about backends see the documentation for C<ev_default_init>. +All of the following are about amortised time: If an array needs to be +extended, libev needs to realloc and move the whole array, but this +happens asymptotically never with higher number of elements, so O(1) might +mean it might do a lengthy realloc operation in rare cases, but on average +it is much faster and asymptotically approaches constant time. + =over 4 =item Starting and stopping timer/periodic watchers: O(log skipped_other_timers) @@ -2272,11 +2278,7 @@ as only the relative motion in the event queue has to be paid for. =item Starting io/check/prepare/idle/signal/child watchers: O(1) -These just add the watcher into an array or at the head of a list. If -the array needs to be extended libev needs to realloc and move the whole -array, but this happen asymptotically less and less with more watchers, -thus amortised O(1). - +These just add the watcher into an array or at the head of a list. =item Stopping check/prepare/idle watchers: O(1) =item Stopping an io/signal/child watcher: O(number_of_watchers_for_this_(fd/signal/pid % EV_PID_HASHSIZE)) |