http://www.perlmonks.org?node_id=434000
Description:

You can purchase a module from Checkpoint that will let you see how many times rules in your ruleset are triggered. The idea being that you could reorder things, or check for rules that are never matched.

If you don't want to buy the module and will settle for exporting the logfile and running the following snippet, you can get a list of rules triggered ordered by descending frequency.

The logfile is slightly odd, CSV without the commas, e.g.:

"26459" "29Feb2005" "5:34:59" "VPN-1 & FireWall-1" "eth6" "169.154.147.193" "Log" "Decrypt" "2967" "10.11.12.13" "10.20.30.40" "udp" "11" "2967" "" ""

In the above, "11" indicates that this packet was accepted by rule 11.

#! /usr/bin/perl -w

use strict;
my @header = ($_ = <>) =~ /"([^"]+)" ?/g;

my %rule;
while( <> ) {
    $rule{ (/"([^"]+)" ?/g)[12] }++;
}

print "$rule{$_}\t$_\n" for sort {$rule{$b} <=> $rule{$a}} keys %rule;