Menu

#1863 UniMemFile cannot handle files over 2 gigabytes

closed
nobody
3
2016-01-27
2009-02-13
erikpkn
No

Winmerge 2.10.4.0

When I try to compare 2 files, I get this error message: UniMemFile cannor handle files over 2 gigabytes (on both files, so I get this error message twice).

On the other hand, when I compare 2 directories (within which those large files exist), WinMerge works flawlessly.

I seem to rembember that comparing 2 large files was never a problem in the past.

WinMerge configuration log
--------------------------
Saved to: C:\Users\***\AppData\Local\Temp\WinMerge.txt
* Please add this information (or attach this file)
* when reporting bugs.
Module names prefixed with tilda (~) are currently loaded in WinMerge process.

Version information:
WinMerge.exe: 2.10.4.0
Build config: UNICODE _UNICODE
Command Line: none
Windows: Microsoft Windows Vista Professional Service Pack 1 (Build 6001)
~COMCTL32.dll dllversion=6.16 dllbuild=6001
~shlwapi.dll dllversion=6.00 dllbuild=6001
~MergeLang.dll version=2.10 build=0004
ShellExtension.dll version=0.00 build=0000
ShellExtensionU.dll version=1.14 build=0003
ShellExtensionX64.dll version=0.00 build=0000

WinMerge configuration:
Compare settings:
Ignore blank lines: No
Ignore case: No
Ignore carriage return differences: No
Whitespace compare: Compare all
Detect moved blocks: No
Compare method: 0
Stop after first diff: No

Other settings:
Automatic rescan: No
Simple EOL: Yes
Automatic scroll to 1st difference: No
Backup original file: No

Show:
Identical files: Yes
Different files: Yes
Left Unique files: Yes
Right Unique files: Yes
Binary files: Yes
Skipped files: Yes

Editor settings:
View Whitespace: No
Merge Mode enabled: No
Show linenumbers: No
Wrap lines: No
Syntax Highlight: Yes
Tab size: 4
Insert tabs: Yes

Font:
Font facename: Courier New
Font charset: 0 (Ansi)

System settings:
codepage settings:
ANSI codepage: 1252
OEM codepage: 850
Locale (Thread):
Def ANSI codepage: 1252
Def OEM codepage: 850
Country: Netherlands
Language: Dutch
Language code: 0413
ISO Language code: nl
Locale (User):
Def ANSI codepage: 1252
Def OEM codepage: 850
Country: Netherlands
Language: Dutch
Language code: 0413
ISO Language code: nl
Locale (System):
Def ANSI codepage: 1252
Def OEM codepage: 850
Country: Netherlands
Language: Dutch
Language code: 0413
ISO Language code: nl
Detect codepage automatically for RC and HTML files: No
unicoder codepage: 1252

Plugins:
Plugins enabled: No
Unpackers:
CompareMSExcelFiles.dll [C:\Program Files\WinMerge\MergePlugins\CompareMSExcelFiles.dll]
CompareMSWordFiles.dll [C:\Program Files\WinMerge\MergePlugins\CompareMSWordFiles.dll]
DisplayBinaryFiles.dll [C:\Program Files\WinMerge\MergePlugins\DisplayBinaryFiles.dll]
DisplayXMLFiles.dll [C:\Program Files\WinMerge\MergePlugins\DisplayXMLFiles.dll]
EditBinaryFiles.dll [C:\Program Files\WinMerge\MergePlugins\EditBinaryFiles.dll]
UnpackDFM.dll [C:\Program Files\WinMerge\MergePlugins\UnpackDFM.dll]
WatchBeginningOfLog.dll [C:\Program Files\WinMerge\MergePlugins\WatchBeginningOfLog.dll]
WatchEndOfLog.dll [C:\Program Files\WinMerge\MergePlugins\WatchEndOfLog.dll]
Prediffers:
IgnoreColumns.dll [C:\Program Files\WinMerge\MergePlugins\IgnoreColumns.dll]
IgnoreCommentsC.dll [C:\Program Files\WinMerge\MergePlugins\IgnoreCommentsC.dll]
IgnoreFieldsComma.dll [C:\Program Files\WinMerge\MergePlugins\IgnoreFieldsComma.dll]
IgnoreFieldsTab.dll [C:\Program Files\WinMerge\MergePlugins\IgnoreFieldsTab.dll]
IgnoreLeadingLineNumbers.dll [C:\Program Files\WinMerge\MergePlugins\IgnoreLeadingLineNumbers.dll]
RCLocalizationHelper.dll [C:\Program Files\WinMerge\MergePlugins\RCLocalizationHelper.dll]
RCLocalizationHelperU.dll [C:\Program Files\WinMerge\MergePlugins\RCLocalizationHelperU.dll]
Editor scripts:
editor addin.sct [C:\Program Files\WinMerge\MergePlugins\editor addin.sct]
insert datetime.sct [C:\Program Files\WinMerge\MergePlugins\insert datetime.sct]

Archive support:
Enable: 1
7-Zip software installed on your computer: 0.00
Codecs:
Formats:
7-Zip components for standalone operation: 0.00
Codecs:
Formats:
Merge7z plugins on path:

Discussion

  • Kimmo Varis

    Kimmo Varis - 2009-02-13

    WinMerge simply cannot load large files into file compare. It is due to the buffering whole file's data into memory.

    Folder compare can handle large files as it can load files in parts.

     
  • Kimmo Varis

    Kimmo Varis - 2009-02-13
    • priority: 5 --> 3
     
  • Matthias

    Matthias - 2009-02-14

    I just asked my frieds for alloc memfiles. That's ok for Win95/98 as they can only handle upto 2G.
    XP and higher, no limit.
    So we can remove that limmit. Only we must protect we have space on the disc for that.

     
  • Kimmo Varis

    Kimmo Varis - 2009-02-14

    Yes, we can think of that once our buffering works so that we can load bigger files than say 200 MB. Reason for such limit is that we currently have files buffered twice.

    Hence this 2 GB limit is non-problem at the moment, so I'm just closing this.

    And btw, the disk space is not the problem. I'd be very interested to hear (then later) how you intend to load *TWO* over 2 GB files to 4 GB memory space... In 32-bit Windows the pointers are still 32-bit.

    To workaround that we'd need to load/map files partially. And doing that is a big challenge. Just think how to handle cases where the diff starts and ends in different segments to load... And then you need to fix the editor...

     
  • Kimmo Varis

    Kimmo Varis - 2009-02-14
    • status: open --> closed
     
  • Crashy

    Crashy - 2016-01-27

    Would you mind to re-open this, please? This is still an issue in 2.14.0.0. I help myself by moving all files into folders, renaming them and doing a folder compare, but this is really unconvenient.
    Thanks!

     

Log in to post a comment.