computerline1z / zynamics

Automatically exported from code.google.com/p/zynamics
0 stars 0 forks source link

File flush call in BinDiff port features causes a 3000% + slowdown #18

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. CTRL-6 Diff any set of IDBs (more noticeable on large ones).
2. After Diff is done, do a CTRL-6 again and click “Import Symbols and 
Comments..” feature.
3. Sit and wait, wait some more, until it's done.

What is the expected output? What do you see instead?
Port feature to complete in reasonable time.
A deadlocked IDA with thread starved UI, Maybe a smoking overheated HD.

What version of the product are you using? On what operating system?
4.0.x, any supported OS.

Please provide any additional information below.
An API either by design or mistake kernel32->FlushFileBuffers() causes
excessive disk writes and thus kills performance.

Also the temp file it apparently repeatedly writes too is very small.
Instead of an fstream concept, I suggest it be replaced with a memstream one.
See: http://www.sirmabus.macromonkey.com/speed-zynamics-bindiff-3000percent/

Original issue reported on code.google.com by crashdu...@gmail.com on 27 Feb 2013 at 6:23

GoogleCodeExporter commented 9 years ago
It seems that blog link is dead and I can't find a cache anywhere. Does anyone 
have the patch Sirmabus made or any information on how to fix this issue? 

I've been importing symbols and comments for 6 days now, and it's still frozen. 
Beginning to wonder if it's actually ever going to finish (my poor cpu and 
harddrive :()

Original comment by jtpushm...@gmail.com on 25 Dec 2013 at 3:54

GoogleCodeExporter commented 9 years ago
Hi there,

we have not released an official patch to this problem, Sirmabus patched the 
binary directly (for reference, the original page is archived at 
https://web.archive.org/web/20130704001631/http://www.sirmabus.macromonkey.com/s
peed-zynamics-bindiff-3000percent/). This workaround of patching the binary to 
remove the call to FlushFileBuffers() should work for the interim.
If you sent me your license information I may have an updated version of the 
plugin for you next week.

Cheers,

Christian

Original comment by cblichm...@google.com on 6 Jan 2014 at 10:29