Poller


Original: http://www.kegel.com/poller/
Unix propose deux appels système, sélectionnez () et poll (), qui acceptent une liste de descripteurs de fichiers, bloc jusqu’à ce que l’un de l’ensemble est prêt à recevoir des E / S, et retourne une liste des descripteurs de fichiers prêts. Le temps pour exécuter ces appels est proportionnelle au nombre de descripteurs de fichiers, ce qui signifie qu’ils deviennent inefficaces ci-dessus quelques milliers de descripteurs de fichiers.

Différentes implémentations d’Unix offrent haute performance, remplacements évolutives pour ces appels système, par exemple / dev / poll, kqueue (), / dev / epoll, et la notification en temps réel de l’état de préparation du signal de Linux, avec une très différentes interfaces. Ce qui les rend difficile à apprendre, et il est difficile d’écrire du code portable.

Poller est une interface qui fournit une abstraction commune pour l’ensemble de ces régimes de notification de l’état de préparation. De nouveaux systèmes de notification de l’état de préparation peuvent être pris en charge par l’écriture d’un nouveau sous-classe de Poller.

Poller est fourni dans le cadre de dkftpbench. Pour l’utiliser, télécharger, décompresser, configure, make, et installer dkftpbench comme d’habitude (cela prend environ deux minutes).

Dans la source qui créent les scrutateurs, vous avez besoin actuellement d’inclure chacun des sous-classes que vous voulez utiliser, par exemple, pour les amener tous, vous diriez

# include <dkftpbench/Poller_devpoll.h>
# include <dkftpbench/Poller_kqueue.h>
# include <dkftpbench/Poller_poll.h>
# include <dkftpbench/Poller_select.h>
# include <dkftpbench/Poller_sigfd.h>
# include <dkftpbench/Poller_sigio.h>

Source qui utilise seulement des références à Pollers déjà créé peut simplement inclure la classe de base:

# include <dkftpbench/Poller.h>

Puis lier avec-lPoller.

Trois programmes qui utilisent Poller peut être utile à titre d’exemples:

  •      Poller_bench.cc – microbenchmark comparant les différentes sous-classes Poller
  •      dkftpbench – grand ftp référence poilu
  •      dkbetaftpd – betaftpd converti pour utiliser Poller_poll. Besoin de plus de travail avant de pouvoir utiliser d’autres scrutateurs.

Je vais vous donner Poller dans une distribution propre parfois, quand je reçois une chance …

Comments are closed.