This is a problem I found when started to use "favorite" and "hate" lists in servers menu. When I run AC without favorites, I have ~80 fps in server list. When I use favorites, I have only 30 fps.
I compiled Assault Cube with profiling information. I think this would be interesting for developers:
As you see, favcatcheckkey is a very hungry function and it eats 1/3 of all CPU time decreasing fps. This function becomes a bottleneck on old PC's. I have an old Pentium 4 processor, newer machines just does not notice difference.
Best solution to not call favorites check every frame refresh.
	
	
	
I compiled Assault Cube with profiling information. I think this would be interesting for developers:
 [SELECT ALL] Code:
$ gprof ./bin_unix/linux_64_client | head 
Flat profile:
Each sample counts as 0.01 seconds.
  %   cumulative   self              self     total           
 time   seconds   seconds    calls  ms/call  ms/call  name    
 26.09      2.16     2.16 32713966     0.00     0.00  favcatcheckkey(serverinfo&, char const*)
 11.59      3.12     0.96     2005     0.48     2.12  assignserverfavourites()
  6.88      3.69     0.57  4655301     0.00     0.00  render_flat(int, int, int, int, int, sqr*, sqr*, sqr*, sqr*, bool)
  5.56      4.15     0.46   634482     0.00     0.00  text_bounds(char const*, int&, int&, int)
  4.59      4.53     0.38     2197     0.17     0.73  render_seg_new(float, float, float, int, int, int, int, int)As you see, favcatcheckkey is a very hungry function and it eats 1/3 of all CPU time decreasing fps. This function becomes a bottleneck on old PC's. I have an old Pentium 4 processor, newer machines just does not notice difference.
Best solution to not call favorites check every frame refresh.

 
 

