ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/svn/vendor/libpeak-0.1.2/README
Revision: 3251
Committed: Wed Apr 2 16:58:30 2014 UTC (9 years, 11 months ago) by michael
File size: 2546 byte(s)
Log Message:
- Imported libpeak-0.1.2

File Contents

# Content
1 $Id: README,v 1.2 2004/01/18 19:41:44 mbuna Exp $
2 ----------------------------------------------------------------
3 PEAK Library :: Parallel Events and Asynchronous tasKing Library
4 ----------------------------------------------------------------
5
6 Note: As it's not my natural language, english might not be perfect here or
7 in the API documentation. Please, feel free to send me your fix if needed, so
8 I can remove this notice :p
9
10 Warning: The PEAK Library is an experimental C library in alpha stage.
11
12 INTRODUCTION
13 ============
14 I started to write the peak library for the Undernet IRC proxy scanner, but
15 not only to provide a support similar to existing libevents. Although already
16 very efficients they are not taking the advantage of multiple CPUs.
17 The peak library can process events in parallel with the help of a threads
18 pool. For example, imagine 2 connected sockets receive an high amount of data
19 to proceed, the master thread distributes the work to do in queues and launch
20 them in parallel. It starts to be profitable if you have something to process
21 by the CPU. In some ideal examples, I already have up to 50% speedup on a dual
22 G4 for the same I/O events processed (dec 2003).
23 Ok, but performances are not all. libpeak should be used, so it provides an
24 objected-oriented API, although written in C. For that, it has its own very
25 light runtime system, with retain/release support of objects, like in the
26 objective-C language. A wrapper in C++ is easily doable and it's a project for
27 the future. Like another libevent library, the peak library needs an I/O
28 multiplexing engine to work, so it needs at least select() (which is standard),
29 but supports poll(), epoll(), solaris /dev/poll and kqueue(), the three last
30 being a lot more efficients! Today, the peak library is almost a framework now,
31 as it provides a memory allocation convenience API, signals handling, and even
32 a dictionary for peak's objects or simple things like strings.
33
34 One current restriction of the peak library can be the architectures supported.
35 As it uses some assembly code for processor's atomic and spinlock operations,
36 only powerpc, sparc and x86 are at the moment supported. Addition of other CPUs
37 is only a question of time (it should be easy).
38
39 REQUIREMENTS
40 ============
41 See the README.platforms file in the distribution to see if your system
42 is supported before trying to install.
43
44 INSTALLATION
45 ============
46 See the INSTALL file in the distribution.
47
48 MORE INFO
49 =========
50 Please visit http://peak.sourceforge.net for more info about libpeak.