From 39820ec180f2a5051871059411f1344f4359c2db Mon Sep 17 00:00:00 2001 From: bustico Date: Mon, 31 Jul 2006 12:48:31 +0000 Subject: ajout des stats sur le nombre global de regexp, et les nombre d'agents qui s'abonnent à des regexps identiques, de manière à savoir si ça vaut le coups de changer les structures de données dans les libs ivy : à l'heure actuelle on a des liste de regexp par agent, si il y a beaucoup de regexp communes à differents agents ça serait plus optimisé d'avoir une table de hash regexp ->[ liste d'appli abonnées] pour que sur un sendmessage les regexp ne soient parsé qu'une fois. --- example/ivystat.pl | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'example/ivystat.pl') diff --git a/example/ivystat.pl b/example/ivystat.pl index 681bb01..933ad7c 100755 --- a/example/ivystat.pl +++ b/example/ivystat.pl @@ -234,7 +234,8 @@ sub writeLogs () # total : nb octets envoyés, nb mess envoyés, nb octets reçus, nb mess reçus # pour chaque agents en receptions : # nb octets envoyés, nb mess envoyés, - my (@sortedApp, $appf, $appn, $appt); + my (@sortedApp, $appf, $appn, $appt, $regx, $numRegx); + my %regxByNumOccur; # il faut que le filehandle LOG soit valide return unless fileno LOG; @@ -247,6 +248,19 @@ sub writeLogs () print "active:$nbActiveAgent, disconnected:$nbDeconnecteedAgent, " . "messages:$totalMess, bytes:$totalBytes\n\n"; + foreach $regx (keys %appByRegexp) { + $numRegx ++; + $regxByNumOccur{scalar (keys %{$appByRegexp{$regx}->[0]})}++; + } + + print "total of $numRegx regexps binded as following :\n"; + foreach (sort keys %regxByNumOccur) { + printf "%d regexp%s binded %d time%s\n", $regxByNumOccur{$_}, + $regxByNumOccur{$_} > 1 ? 's' : '', + $_, + $_ > 1 ? 's' : ''; + } + print "\n"; goto "EXIT_writeLogs" unless scalar (%appNameByhostAndPort); @sortedApp = reverse sort { -- cgit v1.1