Je développe un serveur basé sur Java, avec NIO multiplex et j'ai commencé à voir beaucoup de frameworks... Je ne comprends pas si ces frameworks rendent la vie plus facile seulement ou s'ils ont aussi un incrément de performance ( par exemple netty ).
Réponses
Trop de publicités?Aucun cadre ne peut améliorer les performances de ce qui se trouve en dessous. Dans le cas de NIO, j'en suis venu à penser qu'il s'agit déjà d'un framework en soi. J'ai examiné quelques frameworks NIO tels que Mina, et j'en ai même écrit un moi-même, mais ma propre conclusion est qu'il s'agit en grande partie d'efforts gaspillés, qui finissent par gêner d'une manière ou d'une autre. Tout ce dont vous avez besoin, c'est d'une boucle de sélection bien écrite et des structures de données appropriées.
Je pense que l'essentiel est qu'ils facilitent la vie et permettent d'être productif plus rapidement. Ils peuvent être plus ou moins performants les uns par rapport aux autres, ou par rapport à votre propre code (il n'y a aucune raison de penser que si vous le codiez à partir de zéro, vous obtiendriez de meilleures performances dès le premier essai - bien sûr, en fin de compte, vous en êtes le propriétaire et vous pouvez donc l'optimiser à mort si vous le souhaitez et si vous en avez le temps).
En fin de compte, ils utilisent tous le cadre et les classes Java NIO, et le seul moyen de les surpasser est de faire votre propre JNI - en supposant que vous y parveniez - c'est un travail difficile, une spécialité à part entière dans la programmation.
Cela dépend de ce que vous essayez de faire. Les frameworks NIO sont utiles parce qu'ils fournissent une abstraction de l'action principale de NIO. Cependant, ils vous obligent à utiliser plusieurs modèles de conception avec lesquels vous n'êtes peut-être pas à l'aise.
Si vous pensez pouvoir vous adapter à ces modèles de conception, vous devriez probablement utiliser un cadre de travail. Il y aura moins de bogues, vous aurez moins de travail à faire et, en fin de compte, vous ne verrez pas où se passe toute l'action. Vous devez simplement vous concentrer sur ce que vous essayez de réaliser.
Elle entraîne des frais généraux supplémentaires par rapport à une solution "nationale", mais ils sont négligeables.
Cela dépend vraiment de votre niveau de connaissance de l'outil. java.nio
API. Si vous n'êtes pas sûr de la manière dont les choses fonctionnent, vous devriez probablement utiliser une API tierce. Si vous savez comment les choses fonctionnent et que vous êtes capable d'écrire du code sans API tierce, vous devez absolument utiliser votre propre code sans aucune condition. Vous pouvez obtenir de meilleures performances sans avoir recours à des éléments supplémentaires (API tierce).
J'aime vivre selon les Principe KISS .