IBM AIO4J first saw

xiaoxiao2021-03-06  40

18M a Java asynchronous IO interface implementation

What is asynchronous io for java? (Http://www.alphaWorks.ibm.com/tech/aio4j )asynchronous io for java

TM (AIO4J) is a package that provides the capability to perform input and output (IO) on sockets and files asynchronously - that is, where the Java application can request the operation but can continue doing useful work while the underlying system performs the operation The application is informed of the operation's completion later.

This package provides Java applications with capabilities that are now available from most operating systems at the "C" API layer, such as IO Completion Ports on Windows. AIO4J provides Java application programmers with access to these capabilities, but in a way that is very much In Keeping with Java IDioms and styles of programing.

AIO4J can be used as a replacement for classic synchronous IO and also as an alternative to the New IO package introduced in Java 1.4. AIO4J aims to give performance and scalability that is better than either of these other packages. In particular, AIO4J aims to help Java server applications address what has been called the "C10K problem":. building server applications that serve 10,000 clients simultaneously This is very difficult with Java synchronous IO because most systems can with good responsiveness and performance not sustain 10,000 threads, and Java New IO does not Perform Well with Such A Load.

How does it work? AiO4J Provides A Standard Java Package Of Function, Layered Above A Native Library Capabilities of the Underlying Capabilities of the Operating System.

The package provides facilities that support a range of programming styles, including Blocking, Polling and Callbacks as techniques for getting notifications of the completion of Read or Write operations.For Callbacks, the application can control the number and the type of threads that are used. At present, AIO4J is subject to US software export legal restrictions and cannot be free from online.

Here is a brief introduction

http://www.cis.nctu.edu.tw/~gis91530/blog/archives/2004_06.html

The following is compared with the performance of AIO4J:

http://www.javaworld.com.tw/jute/post/view?bid=12&id=77914&sty=1&tpg=1&age=0

Number of Clients | SYNC Server | New Io Server | Async Server |

50 | 357/186 | 487/180 | 332/180 |

200 | 326/178 | 200/179 | 211/178 |

400 | 193/181 | 201/178 | 190/178 |

1000 | 200/180 | 433/197 | 222/186 |

3000 | 230/180 | 565/184 | 217/201 |

1000Active | | | | |

3000STATIC | 232/187 | 688/196 | 230/181 |

1000Active | | | | |

6000STATIC | OUTOFMEMORY | 781/269 | 275/195 |

Overall Time / Data Transfer Time,

All Times Areave Microseconds Per Cycle

转载请注明原文地址:https://www.9cbs.com/read-71245.html

New Post(0)