I proudly present new modification of JkDefrag v3.34. This is pointed to fragments. As I mentioned before fragments are not needed to be larger than 5000 clusters. So I programmed version which defragments only fragments that are smaller than 5000 clusters. If next fragment is very big (>10000 clusters) then it won't merge current fragment with it but it steals some clusters from big fragment. This prevents moving of very big clusters. Now the linkhttp://homel.vsb.cz/~sru048/JkDefrag%20mod%20by%20Esprit/JkDefrag%20v3.34.E.f.2.exe
I tested this release so it should work but definitely it won't hurt your files due to use of WinAPI. There is a little bug: files that are defragmented are still colored yellow. All fragments are bigger than 5000 but decision about fragmentation is based on number of fragments. Don't worry about that.
There is great improvement for large file (video) disk comparing to JkDefrag. Classic defragmentors will lower the number of fragments when some gap is available. So after first run specially after fast optimize big gap is created at the end. Second run will cause moving large fragments to defragment all files. But my mod will be much faster at second run because all previously defragmented files will have fragments bigger than 5000 cl. so now they won't be processed.
I created function ReorganizeFragments which deletes virtual fragments from list of fragments and also treats all neighborhood fragments as one. This greatly simplify some implementations and lowers memory usage (see little lowering during defrag.). To lower memory usage at start all functions have to be rewritten so I didn't take risk that something could go wrong (still this could be implemented to version 4).
Next time I'll try to change FixUp phase because it still defragments files that have big fragments. It should move only fragments. Also I'll try to make moving of clusters in parallel which should greatly improve moving speed in some cases.