[fpc-pascal] bitmask vs sets. Is there a performance difference?
    Graeme Geldenhuys 
    mailinglists at geldenhuys.co.uk
       
    Wed Jan 20 19:26:06 CET 2016
    
    
  
Is there a performance difference between using bitmask values and sets?
For example:
Option #1:
=================================
const
  FLAG_A = 1;  // 1 shl 0
  FLAG_B = 2;  // 1 shl 1
  FLAG_C = 4;  // 1 shl 2
var
  Flags: Integer;
[..]
  Flags:= FLAG_A or FLAG_C;
  if FLAG_A and Flags <> 0 then ..  // check FLAG_A is set in flags variable
=================================
vs
Option #2:
=================================
type
  TFlag = (FLAG_A, FLAG_B, FLAG_C);
  TFlags = set of TFlag;
var
  Flags: TFlags;
[..]
  Flags:= [FLAG_A, FLAG_C];
  if FLAG_A in Flags then ..  // check FLAG_A is set in flags variable
=================================
While we are on the topic of Sets. What is the maximum number of values
you may have in a set, and does it differ between 32-bit and 64-bit
platforms?
Regards,
  - Graeme -
-- 
fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal
http://fpgui.sourceforge.net/
My public PGP key:  http://tinyurl.com/graeme-pgp
    
    
More information about the fpc-pascal
mailing list