ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/libev/ev.pod
(Generate patch)

Comparing libev/ev.pod (file contents):
Revision 1.150 by root, Tue May 6 23:34:16 2008 UTC vs.
Revision 1.152 by root, Wed May 7 14:45:17 2008 UTC

2980defined to be C<0>, then they are not. 2980defined to be C<0>, then they are not.
2981 2981
2982=item EV_MINIMAL 2982=item EV_MINIMAL
2983 2983
2984If you need to shave off some kilobytes of code at the expense of some 2984If you need to shave off some kilobytes of code at the expense of some
2985speed, define this symbol to C<1>. Currently only used for gcc to override 2985speed, define this symbol to C<1>. Currently this is used to override some
2986some inlining decisions, saves roughly 30% codesize of amd64. 2986inlining decisions, saves roughly 30% codesize of amd64. It also selects a
2987much smaller 2-heap for timer management over the default 4-heap.
2987 2988
2988=item EV_PID_HASHSIZE 2989=item EV_PID_HASHSIZE
2989 2990
2990C<ev_child> watchers use a small hash table to distribute workload by 2991C<ev_child> watchers use a small hash table to distribute workload by
2991pid. The default size is C<16> (or C<1> with C<EV_MINIMAL>), usually more 2992pid. The default size is C<16> (or C<1> with C<EV_MINIMAL>), usually more
3176correct watcher to remove. The lists are usually short (you don't usually 3177correct watcher to remove. The lists are usually short (you don't usually
3177have many watchers waiting for the same fd or signal). 3178have many watchers waiting for the same fd or signal).
3178 3179
3179=item Finding the next timer in each loop iteration: O(1) 3180=item Finding the next timer in each loop iteration: O(1)
3180 3181
3181By virtue of using a binary heap, the next timer is always found at the 3182By virtue of using a binary or 4-heap, the next timer is always found at a
3182beginning of the storage array. 3183fixed position in the storage array.
3183 3184
3184=item Each change on a file descriptor per loop iteration: O(number_of_watchers_for_this_fd) 3185=item Each change on a file descriptor per loop iteration: O(number_of_watchers_for_this_fd)
3185 3186
3186A change means an I/O watcher gets started or stopped, which requires 3187A change means an I/O watcher gets started or stopped, which requires
3187libev to recalculate its status (and possibly tell the kernel, depending 3188libev to recalculate its status (and possibly tell the kernel, depending
3319is still at least 31 bits everywhere, which is enough for hundreds of 3320is still at least 31 bits everywhere, which is enough for hundreds of
3320millions of watchers. 3321millions of watchers.
3321 3322
3322=item C<double> must hold a time value in seconds with enough accuracy 3323=item C<double> must hold a time value in seconds with enough accuracy
3323 3324
3324The type C<double> is used to represent timestamps. It is required to have 3325The type C<double> is used to represent timestamps. It is required to
3325at least 51 bits of mantissa, which is good enough for at least into the 3326have at least 51 bits of mantissa (and 9 bits of exponent), which is good
3326year 4000. This requirement is fulfilled by implementations implementing 3327enough for at least into the year 4000. This requirement is fulfilled by
3327IEEE 754 (basically all existing ones). 3328implementations implementing IEEE 754 (basically all existing ones).
3328 3329
3329=back 3330=back
3330 3331
3331If you know of other additional requirements drop me a note. 3332If you know of other additional requirements drop me a note.
3332 3333

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines