

© J.C. Kessels 2009
|
 |
 |
|
MyDefrag Forum
|
|
May 18, 2013, 05:47:40 pm
|
Show Posts
|
|
Pages: [1] 2 3 4
|
|
2
|
JkDefrag v3 Forum / Bugs and problems / AddGap : ZoneBegin (and ZoneSize) Values are Incorrect
|
on: November 08, 2011, 11:16:13 am
|
|
In MyDefrag v4.3.1, when using AddGap - after processing a (non-empty) zone - ZoneBegin is given the value of ZoneEnd.
The relevant extract from my illustrative script is :- ---------------------------------------------------------------------------- Title('SysVolInfo') FileSelect DirectoryName("System Volume Information") FileActions MoveUpToZone() AddGap(0.21*VolumeSize + ZoneEnd - ZoneBegin - ZoneSize,DoNotVacate) FileEnd ----------------------------------------------------------------------------
The extract from the Debuglog is :- =========================================================== 09:42:48 Vacating free area 09:42:48 Evaluating expression at line 18 column 12... 09:42:48 Evaluating expression at line 18 column 12... 09:42:48 Evaluating expression at line 18 column 12... 09:42:48 Evaluating expression at line 18 column 12... 09:42:48 Number 1 = 2.100000e-001 (0) 09:42:48 Value of macro !VolumeSize! = 40007729152.000000 09:42:48 Number 2 = 4.000773e+010 (40007729152) 09:42:48 Result = 8.401623e+009 (8401623121) 09:42:48 Number 1 = 8.401623e+009 (8401623121) 09:42:49 Value of macro !ZoneEnd! = 6033252352.000000 09:42:49 Number 2 = 6.033252e+009 (6033252352) 09:42:49 Result = 1.443488e+010 (14434875473) 09:42:49 Number 1 = 1.443488e+010 (14434875473) 09:42:49 Value of macro !ZoneBegin! = 6033252352.000000 09:42:49 Number 2 = 6.033252e+009 (6033252352) 09:42:49 Result = 8.401623e+009 (8401623121) 09:42:49 Number 1 = 8.401623e+009 (8401623121) 09:42:49 Value of macro !ZoneSize! = 0.000000 09:42:49 Number 2 = 0.000000e+000 (0) 09:42:49 Result = 8.401623e+009 (8401623121) 09:42:49 AddGap has set the beginning of the next zone to LCN=2051177. 09:42:49 Finished FileActions. ===========================================================
Also, ZoneSize is given a value of 0 (but this was reported in a post some time ago).
I appreciate the tremendous work done by Jeroen, but it now 18 months since this latest release of MyDefrag. It would be nice to hear some news from Jeroen on how the next release is progressing.
|
|
|
|
|
3
|
MyDefrag v4 Forum / Requests for new features / Re: Quicker Defragging Method?
|
on: December 12, 2010, 02:10:27 pm
|
|
The specific problems that I have encountered are :-
- Because of the distance (parts of the) files are moved, defragging is very slow.
- It appears that more parts of a file are moved up the disk than is necessary to order them in their unfragmented position.
- When space is tight, because of the way parts of files are moved out of the way, some of these intertwined files become labelled as unmovable, so that they are not then defragged.
- If MyDefrag stops after it hase partially defragged a file, on the next run it does not continue from where it left off. It starts all over again, first moving out those parts of the file that it had previously put in order.
|
|
|
|
|
4
|
MyDefrag v4 Forum / Requests for new features / Quicker Defragging Method?
|
on: December 10, 2010, 08:33:01 pm
|
|
I've got several defragmented ~5GB archive files. From limited observations, it appears that to defrag them, MyDefrag moves the fragments further up the disk then brings the fragments down in their correct order. This appears to involve moving fragments further than is necessary.
MyDefrag could moved up files (or a FileMoveChunkSize part of a big file) that are is in the way, replacing them by the next sequenced part (or a FileMoveChunkSize part of a big file) of the defragmented file. Wouldn't this be quicker and involve moving files over shorter distances?
Would this also get round a problem that I have noticed, where fragmented large files (whose fragments are intertwined) are not defragmented, some of the files being marked as unmovable (due to lack of space above them?).
|
|
|
|
|
5
|
MyDefrag v4 Forum / Bugs and problems / Re: ImportListFromProgramHints Problem
|
on: February 14, 2010, 04:50:11 pm
|
|
Using Debug(485), the debuglog shows the same entry for each .pf file, i.e :-
15:37:25 Analyzing the program hints 15:37:25 This is not a prefetch scenario file (invalid cookie): C:\WINDOWS\Prefetch\ALG.EXE-0F138680.pf 15:37:25 This is not a prefetch scenario file (invalid cookie): C:\WINDOWS\Prefetch\ATNOTES.EXE-158394E7.pf 15:37:25 This is not a prefetch scenario file (invalid cookie): C:\WINDOWS\Prefetch\AUTORUNS.EXE-0D80187B.pf ............ ................ ............ ................ ............ ................ 15:37:27 This is not a prefetch scenario file (invalid cookie): C:\WINDOWS\Prefetch\WUAUCLT.EXE-399A8E72.pf 15:37:27 This is not a prefetch scenario file (invalid cookie): C:\WINDOWS\Prefetch\WUPDMGR.EXE-2F30BEAB.pf 15:37:27 This is not a prefetch scenario file (invalid cookie): C:\WINDOWS\Prefetch\XPLORER2_LITE.EXE-067B1651.pf 15:37:27 This is not a prefetch scenario file (invalid cookie): C:\WINDOWS\Prefetch\_IU14D2N.TMP-35FC02AC.pf 15:37:27 Sorting the program hints 15:37:27 No files imported. 15:37:27 Finished FileBoolean.
|
|
|
|
|
6
|
MyDefrag v4 Forum / Bugs and problems / ImportListFromProgramHints Problem
|
on: February 14, 2010, 02:24:22 pm
|
|
I can't get this to work on XP Pro SP3. No files are selected - even though there are lots of '.pf files' in the folder 'C:\WINDOWS\Prefetch'.
My test script is ... Debug(175) VolumeSelect Name("C:") VolumeActions FileSelect ImportListFromProgramHints("*.pf") FileActions Defragment(Fast) FastFill() Pause() FileEnd VolumeEnd ... and the debuglog extract is ... ............................. 13:04:15 Found 1 items with wrap-around fragments. 13:04:15 Finished Scanning for items with wrap-around fragments. 13:04:15 Starting FileBoolean. 13:04:15 Calculating the maximum end of the gap. 13:04:15 Iteration 1: 0 unmovable clusters after 7842657, new ZoneBegin = 7842657 13:04:15 Maximum end of gap = 7842657 13:04:15 Analyzing the program hints 13:04:15 Sorting the program hints 13:04:15 No files imported. 13:04:15 Finished FileBoolean. 13:04:15 Finished VolumeActions. 13:04:15 Calculating the maximum end of the gap. 13:04:15 Iteration 1: 0 unmovable clusters after 7842657, new ZoneBegin = 7842657 13:04:15 Maximum end of gap = 7842657 13:04:15 Statistics after: ..................................
Just as a matter of interest, would the statement 'ImportListFromProgramHints("*")' select files in 'Layout.ini' as well those in '.pf files'.
|
|
|
|
|
7
|
MyDefrag v4 Forum / Questions and help / Re: Zone stability
|
on: January 08, 2010, 06:37:59 pm
|
|
You can create fixed Zone Ends using the method below.
1. Run a Mydefrag Analyze script and use the diskmap cursor to determine suitable zone end cluster numbers.
2. create a .bat file called (say ZoneEndsC.bat), as below :-
SET ZoneEnds= -m"Zone1=0900000" -m"Zone2=1800000" :: (use your own ^^^^^ and ^^^^^ cluster numbers) :: (add/remove -m"Zonex=nnnnnnn" as required)
2. In your script (say it is called Daily for your C drive), use :- ... VolumeSelect CommandlineVolumes() ... FileSelect ... FileActions ... AddGap(!Zone1!*BytesPerCluster) FileEnd ...
3. create a .bat file called (say DailyC_Run.bat), with the lines :- @ECHO off CALL ZoneEndsC Start MyDefrag -r"Daily" %ZoneEnds% -v"C:"
4. Run DailyC_Run and it will leave gaps after the zones. To ensure that a gap is created (in case a zone is empty), then instead of AddGap(...) use MakeGap(...) AFTER FileEnd.
To adjust the Zone Ends, simply edit ZoneEndsC.bat. For a D: drive, create ZoneEndsD.bat and DailyD_Run.bat (using -v"D:").
|
|
|
|
|
9
|
MyDefrag v4 Forum / Bugs and problems / Can't get Macros to work
|
on: December 30, 2009, 01:45:58 pm
|
|
If I use the inbuilt macro !ScriptDirectory! as below :-
FullPath("!ScriptDirectory!","= MyDefragTemp*.*")
MyDefrag doesn't seem to recognise it and ignores any '= MyDefragTemp*.*' files, as shown in the debuglog extract below :- .... 12:36:43 The volume has already been analyzed, using existing data. 12:36:43 Starting FileBoolean. 12:36:43 Looking for: \= MyDefragTemp*.* 12:36:45 Finished FileBoolean. 12:36:45 Zone 1 of 8 12:36:45 Cleaning up old data from memory. 12:36:45 Finished cleaning up old data from memory. 12:36:45 The volume has already been analyzed, using existing data. 12:36:45 Vacating free area 12:36:45 MakeGap has set the beginning of the next zone to LCN=0. 12:36:45 Zone 2 of 8 ....
|
|
|
|
|
10
|
MyDefrag v4 Forum / Questions and help / Re: How to Place Files at Specific Locations?
|
on: December 30, 2009, 01:14:58 pm
|
|
Thanks for your replies. Using SortByName(Ascending) instead of FastFill() worked OK.
I am using the script to ensure there is a space just after the $logfile/$bitmap, as I have found that XP often creates files after these files (which are half way down the disk and far away from the $mft).
I use CREATFIL to create a temporary 256MB file, my script relocates the file and optimizes the rest of the files, then I delete the temporary file - leaving a 256MB space. This works OK and could be used to create a space in the middle of a large zone.
I'm running XP SP3 on a 2.8GHz PC with 1GB memory. The only problem is that (as the debuglog extract below shows) it takes over 5 minutes to move the 256MB temporary file up the disk. This seems rather a long time - is this normal? .... 11:19:02 The volume has already been analyzed, using existing data. 11:19:02 Vacating free area 11:19:02 Evaluating expression at line 49 column 11... 11:19:02 Number 1 = 4.001595e+010 (40015953920) 11:19:02 Number 2 = 5.200000e-001 (0) 11:19:02 Result = 2.080830e+010 (20808296038) 11:19:02 MakeGap has set the beginning of the next zone to LCN=5080150. 11:19:02 Zone 1 of 8 11:19:02 Starting FileSelect for zone 1 (at line 50 column 3). 11:19:02 Cleaning up old data from memory. 11:19:02 Finished cleaning up old data from memory. 11:19:02 The volume has already been analyzed, using existing data. 11:19:02 Starting FileBoolean. 11:19:02 Looking for: *\# MyDefrag\= MyDefragTemp*.* 11:19:04 Finished FileBoolean. 11:19:04 Starting FileActions. 11:19:04 Calculating the end of the zone. 11:19:04 ZoneBegin = 5080150 11:19:04 Number of clusters in selected items = 65549 11:19:04 Iteration 1: 0 unmovable clusters between 5080150 and 5145699, ZoneEnd = 5145699 11:19:04 New ZoneEnd = 5145699 11:19:04 Starting to sort by Name. 11:19:04 SortBy 11:19:04 Creating sorted list. 11:19:04 Finished creating sorted list. 11:19:04 Placing items in sorted order. 11:19:04 Calculating the end of the zone. 11:19:05 ZoneBegin = 5080150 11:19:05 Number of clusters in selected items = 65549 11:19:05 Iteration 1: 0 unmovable clusters between 5080150 and 5145699, ZoneEnd = 5145699 11:19:05 Re-using old ZoneEnd: 5145699 11:19:05 SortBy 11:19:05 Creating sorted list. 11:19:05 Finished creating sorted list. 11:19:05 Placing items in sorted order. 11:19:05 I want to place Inode=51410 ('C:\Documents and Settings\graham\My Documents\My PC\Programs\# MyDefrag') at Lcn=5080150, 13 clusters. 11:19:05 Testing if 'C:\Documents and Settings\graham\My Documents\My PC\Programs\# MyDefrag' (Inode=51410) is already at LCN=5080150 11:19:05 Yes, it is exactly there. 11:19:05 I want to place Inode=121680 ('C:\Documents and Settings\graham\My Documents\My PC\Programs\# MyDefrag\= MyDefragTemp =.tmp') at Lcn=5080163, 65536 clusters. 11:19:05 Testing if 'C:\Documents and Settings\graham\My Documents\My PC\Programs\# MyDefrag\= MyDefragTemp =.tmp' (Inode=121680) is already at LCN=5080163 11:19:05 The item is fragmented. 11:19:05 Vacating items from LCN=5080163 until there are at least 65536 free clusters. 11:19:05 No need to vacate, there are already 131059 free clusters at LCN=5080163. 11:19:05 Preemptive vacate of items not belonging to this zone, from LCN=5080150 to LCN=5082591. 11:19:05 Vacating movable items between LCN=5080150 and LCN=5082591. 11:19:05 Next movable item is at LCN=5211222, which is above LCN=5082591. 11:19:05 Finished vacating. 11:19:05 Moving 'C:\Documents and Settings\graham\My Documents\My PC\Programs\# MyDefrag\= MyDefragTemp =.tmp' (Inode=121680) 11:19:05 Moving 51200 clusters to Lcn=5080163. 11:23:24 Getting fragment list for: C:\Documents and Settings\graham\My Documents\My PC\Programs\# MyDefrag\= MyDefragTemp =.tmp 11:23:24 Translating into fragment tree.... 11:23:24 Counting fragments.... 11:23:24 Moving 14336 clusters at offset=51200 to Lcn=5131363. 11:24:28 Getting fragment list for: C:\Documents and Settings\graham\My Documents\My PC\Programs\# MyDefrag\= MyDefragTemp =.tmp 11:24:28 Translating into fragment tree.... 11:24:28 Counting fragments.... 11:24:28 Finished sorting by Name. ....
|
|
|
|
|
11
|
MyDefrag v4 Forum / Questions and help / How to Place Files at Specific Locations?
|
on: December 29, 2009, 06:44:41 pm
|
|
I have tried to use the OptimizeDaily MakeGap (....) MakeGap(0) technique, :- .... MakeGap(VolumeSize * 0.52, DoNotVacate) FileSelect FullPath("*\# MyDefrag","= MyDefragTemp*.*") FileActions FastFill() FileEnd
MakeGap(0) .... in an attempt to initially place "= MyDefragTemp*.*" files at a specific (higher) disk location, before going on to process the rest of the disk.
However, the files are not moved up. The debuglog file shows :- .... Version: MyDefrag v4.2.7 Date: 2009/12/29 16:56:28 Windows version: v5.1 build 2600 S .... 16:57:07 Vacating free area 16:57:07 Evaluating expression at line 49 column 11... 16:57:07 Number 1 = 4.001595e+010 (40015953920) 16:57:07 Number 2 = 5.200000e-001 (0) 16:57:07 Result = 2.080830e+010 (20808296038) 16:57:07 MakeGap has set the beginning of the next zone to LCN=5080150. 16:57:07 Zone 1 of 8 16:57:07 Starting FileSelect for zone 1 (at line 50 column 3). 16:57:07 Cleaning up old data from memory. 16:57:07 Finished cleaning up old data from memory. 16:57:07 The volume has already been analyzed, using existing data. 16:57:07 Starting FileBoolean. 16:57:07 Looking for: *\# MyDefrag\= MyDefragTemp*.* 16:57:09 Finished FileBoolean. 16:57:09 Starting FileActions. 16:57:09 Calculating the end of the zone. 16:57:09 ZoneBegin = 5080150 16:57:10 Number of clusters in selected items = 49015 16:57:10 Iteration 1: 0 unmovable clusters between 5080150 and 5129165, ZoneEnd = 5129165 16:57:10 New ZoneEnd = 5129165 16:57:10 FastFill 16:57:10 Starting FastFill. 16:57:10 Vacating movable items between LCN=5080150 and LCN=5129165. 16:57:10 Next movable item is at LCN=5211222, which is above LCN=5129165. 16:57:10 Finished vacating. 16:57:10 Starting to fill the gap at LCN=5080150, size=131072 clusters. 16:57:10 There are no more items above the gap, finished. 16:57:10 Updating list of unmovable files at: C:\Program Files\MyDefrag\MyDefrag.dat 16:57:10 Loading file into memory: C:\Program Files\MyDefrag\MyDefrag.dat 16:57:10 Finished updating list of unmovable items. ....
Could anybody please explain what I'm doing wrong?
|
|
|
|
|
13
|
MyDefrag v4 Forum / Bugs and problems / FastFill Won't move file into correct Zone due to Unmovable file
|
on: October 22, 2009, 07:08:36 pm
|
|
MyDefrag cleared out a space for a file, but will not move it - apparently because an unmovable file occupies part of the space. The problem file is subsequently coloured as if it has been processed normally, even though it has not been moved into its correct zone.
Current debuglogs don't appear to highlight the problem (maybe because the problem first occurred on a previous Mydefrag run, in which the space was created for it to move into ).
|
|
|
|
|
15
|
MyDefrag v4 Forum / Bugs and problems / Re: LastAccess Problem with Literal date/time
|
on: October 20, 2009, 08:55:25 pm
|
|
I'm using NTFS & LastAccess time properties seems to be updating OK.
Hoewever, something really weird is going on. Using :-
LastAccess(2009/10/20 08:00:00,2009/10/20 09:03:12)
one of the files highlighted has a Date Accessed of 20/10/2009 09:14, which is above the selected range.
The Debuglogs up to (495) don't help - I aborted a Debug(495) run because it was horrendously slow.
|
|
|
|
|
|
 |