I'm very much in line with Ricardo. "Your mileage may vary!"
Performance is SO environment dependent. You have to measure P-code vs. M-code in YOUR app in YOUR environment. PB manual on compile to machine code discusses what code elements runs faster. Only certain elements are impacted at all - but your performance may be dominated be all other things like apps competing for local memory; network delays; file distribution on disks, and database performance.
In my 27+ years with PB I never had to compile to M-code due to performance bottle-necks.
Issues were always somewhere else.
Security is so much more than protect from decompile. BTW: Any PB app can export DataWindows from M-code files. Easiest way to safeguard file content is to keep app files stored on "secure" servers and only allow terminal access like RDP or Citrix.
I would argue only reason M-code version of PBD is considered "more safe" is that the format isn't publicly documented. But anyone with enough resources could analyze exactly how P-code turns to M-code -- and hence establish foundation for decompile. Start with PBL having 1 class with 1 function returning "Hello, world." Then gradually expand. It is time consuming but isn't rocket science.
Improving security should in my view start with risk assessment including gap-analysis = "What do we need to improve?" With that baseline analyze options, then decide - and finally execute.
HTH /Michael
This would be a good use case for indirect variables. Code that uses the password would think it is just assigning one variable to another but behind the scenes the indirect function would decrypt the hard coded value.
https://www.topwizprogramming.com/freecode_indirect.html
Personally I was thinking to use the windows AD vault. That way if things aren't secure enough it won't be the programmers fault (but MS's). Regretfully I wasn't assigned to this task.