Hello, 

I was wondering if anyone has experienced significant performance 
degradation after compiling a program with pyinstaller. When I run a 
program via source, its approximately 10 times faster than the exact same 
code in binary form. I'm aware of the minimal delay during startup that is 
known/expected with pyinstaller binaries and I don't believe that is the 
issue here. 

Here's an example: 

1) check out the volatility source 

$ git clone https://github.com/volatilityfoundation/volatility.git

2) run the "filescan" plugin with volatility as source

$ time python volatility/vol.py -f memdump.mem filescan > /dev/null 

real    1m31.799s
user    1m25.953s
sys    0m5.660s

3) check out the latest dev pyinstaller 

$ git clone https://github.com/pyinstaller/pyinstaller.git

4) compile volatility (this is being done on a 64-bit Debian Linux system)

$ python pyinstaller/pyinstaller.py -F volatility/pyinstaller.spec 

5) run the "filescan" plugin with volatility as a pyinstaller binary

$ time ./dist/volatility -f memdump.mem filescan > /dev/null

real    14m31.405s
user    14m23.970s
sys    0m5.700s

As you can see, the exact same code took 14m31s after being compiled, but 
it only took 1m31s in source form. If you're not familiar with volatility 
(or the filescan plugin) it is essentially scanning through a large memory 
dump file (several GB big) looking for specific signatures/byte patterns 
and then interpreting data at the matching addresses as C data structures 
(in short, memory forensics). 

What would you suggest for troubleshooting this type of performance 
problem? Also, are there any known types of activities (i.e. disk I/O, 
network I/O, GUI interactions) or specific modules/APIs that result in 
severe slowdowns when compiled or should speeds theoretically be pretty 
similar between the source and binary versions (minus the tiny initial 
startup delay)?

Thank you! 
MHL

-- 
You received this message because you are subscribed to the Google Groups 
"PyInstaller" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/pyinstaller.
For more options, visit https://groups.google.com/d/optout.

Reply via email to