3 votes

Contournement du noyau avec Java 7 ?

J'ai lu dans quelques commentaires sur SO que Java 7 prend en charge le contournement du noyau. Cependant, en cherchant le sujet sur Google, je n'ai pas vu d'exemples immédiats de ce type.

Quelqu'un a-t-il un exemple de Java 7 effectuant un contournement du noyau ? Je serais intéressé de le voir

3voto

Stephen C Points 255558

Les réponses à cette question connexe mentionnent que SolarFlare a des liens avec Java : Mise en réseau avec contournement du noyau en Java .

En ce qui concerne Java 7, il n'y a pas de support pour ce genre de choses dans les bibliothèques de base. Le contournement du noyau est trop spécifique au système ou au fournisseur pour être inclus dans les API standard.

Vous pouvez faire d'autres choses pour améliorer le débit du réseau en Java qui n'impliquent pas le contournement du noyau. Par exemple, en utilisant les API NIO Buffer et Channel ... Cependant, votre "framework" Java typique a tendance à s'y opposer ... en exposant uniquement Stream / Reader et d'autres abstractions E/S de haut niveau au code "application".


(Je dirais également que si vous avez une application où la latence et le débit du réseau sont suffisamment critiques pour que le contournement du noyau en vaille la peine, vous devriez utiliser un langage de programmation qui est "plus proche du métal". Java est meilleur pour les applications où le plus gros problème est la complexité de l'application ... PAS le déplacement rapide d'un grand nombre de bits sur le réseau).

1voto

Andy Malakov Points 84

Jetez un coup d'œil à la Enveloppeur JNI de l'API des extensions de chargement sur github. L'auteur semble se spécialiser dans contournement du noyau .

0voto

aoeu Points 9342

Contournement du noyau est une méthode permettant d'éviter le noyau lors de la lecture/écriture dans des sources de données externes, par exemple des fichiers ou des réseaux.

Au lieu de cela, vous directement accéder au stockage des données sans laisser tous les octets passer par le noyau du système d'exploitation. Cette méthode est généralement plus rapide, mais aussi moins sûre, puisque l'ensemble du processus n'est plus supervisé par le système d'exploitation.

Hypothèse : En ce qui concerne Java, le kernel (pourrait) représenter le(s) JVM .

J'ai trouvé un très bon article sur ce sujet.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X