Relevance locking up memory in Debugger

I am trying to verify each file with 2 different folder structures. When I try and run this through the fixlet debugger it runs out of memory. Unfortunately its too long to paste in here. But looks something like this with about 2500 lines in total.
Any ideas on how I could format this differently?

if((not exists file “00999.key” whose (size of it = 24 AND sha1 of it = “2a12265c6dac897588da862d97f20b7abdd263ad”) of folder (value of variable “ProgramFiles” of environment & “\Encore\Prod_1\15.11.2.20c”)) OR
(not exists file “72117Backup.zip” whose (size of it = 150038020 AND sha1 of it = “3a8e211d51d9c28bbc89751192d28dd34456cfad”) of folder (value of variable “ProgramFiles” of environment & “\Encore\Prod_1\15.11.2.20c”)) OR
(not exists file “Adobe10TrustedFoldersWin7.reg” whose (size of it = 1693 AND sha1 of it = “9af5077ce8eb5c9cfc0a90a4aeb85c3c77f8c8f0”) of folder (value of variable “ProgramFiles” of environment & “\Encore\Prod_1\15.11.2.20c”)) OR
(not exists file “Adobe10TrustedFoldersXP.reg” whose (size of it = 1891 AND sha1 of it = “0cf02028c72deb16a2b98075300b5f732c094b91”) of folder (value of variable “ProgramFiles” of environment & “\Encore\Prod_1\15.11.2.20c”)) OR
(not exists file “axcdlxchkactx.dll” whose (size of it = 8704 AND sha1 of it = “ad906716f39ad37d394c87ad5e80fe57875b6664”) of folder (value of variable “ProgramFiles” of environment & “\Encore\Prod_1\15.11.2.20c”)))
or
(not exists file “DevExpress.XtraScheduler.v10.2.Ex” whose (size of it = 173568 AND sha1 of it = “5a0e9416003996ca36a6a9eaf7b3d87a5c3c6708”) of folder (value of variable “ProgramFiles” of environment & “\Encore\Prod_1\15.11.2.20c”)) OR
(not exists file “DevExpress.XtraTreeList.v14.1.dll” whose (size of it = 915960 AND sha1 of it = “dccbebd2148de87e7f6a916f17278a36a2ea82a7”) of folder (value of variable “ProgramFiles” of environment & “\Encore\Prod_1\15.11.2.20c”)) OR
(not exists file “dlxOneComm.dll” whose (size of it = 7168 AND sha1 of it = “f2c4eca2eba713db5820374dde694521cc9cb8fe”) of folder (value of variable “ProgramFiles” of environment & “\Encore\Prod_1\15.11.2.20c”)) OR
(not exists file “DlxOneObj.dll” whose (size of it = 49152 AND sha1 of it = “017173609cd9de15ebf33e32cd7379ff811323f6”) of folder (value of variable “ProgramFiles” of environment & “\Encore\Prod_1\15.11.2.20c”)))
false then true

How about something like

not (exists file1 whose () and exists file2 whose () and exists file3 whose ())

Or

not exists folder () whose (size of file1 of it = something and sha1 of file1 of it = someting and size of file2 of it = something ...)

Also, constantly evaluating full file content via sha1 for a lot of files is going to be awfully expensive on the client. Ideally this should be an analysis property with an infrequent evaluation cycle, not a fixlet/task relevance that gets evaluated every loop.

1 Like

Thanks for the quick response. I will look at building an analysis for this instead.

If they’re all DLLs then you should be able to check “version of file” for them, which is not so bad; but generating the sha1 requires reading every byte of the file.