1. A method in a data processing system, the method comprising: in a set-associative cache memory having a plurality of congruence classes each including multiple entries for storing cache lines of data, maintaining a bank of counters including a respective one of a plurality of counters for each cache line stored in the plurality of congruence classes; the cache memory selecting victim cache lines for eviction from the cache memory by reference to counter values of counters within the bank of counters; determining a dynamic distribution, at a given time, of counter values across counters within the bank of counters; and in response to the determining, adapting an amount counter values of counters within the bank of counters are adjusted on a cache miss based on the dynamic distribution of the counter values.