Is the 2GB limit for FXT files still around? - page 2

 
WHRoeder:

There are two 2GB limitations.

  1. Sequential read/write like FXT: The 2GB file length limit is a 32 bit OS limitation. Run a 64 bit OS
  2. Random reading (position seek.) Requires a 64 bit application for offsets beyond 2GB.


There is no such limitations based on 32/64 OS, file size limitation come from filesystem used. If you are still using FAT, it's probably time to upgrade.
 

How do you seek past 2GB when the largest integer you can have with 32 bits is 2GB?

How does the file system report the size of a 2GB file when the 32 bit integer can't hold the size.

No one put a limit in the file system. The file system has the limit because of the 32 bit integer limit it has to use.

 
WHRoeder:
How do you seek past 2GB when the largest integer you can have with 32 bits is 2GB?
Incrementally ?
 
nope, the file system still has to remember where it is between reads and can't.
 
WHRoeder:

How do you seek past 2GB when the largest integer you can have with 32 bits is 2GB?

How does the file system report the size of a 2GB file when the 32 bit integer can't hold the size.

No one put a limit in the file system. The file system has the limit because of the 32 bit integer limit it has to use.


You are wrong. What prevents them from using more than one integer ? For example.
 
  1. No I am not. I'm not saying they couldn't be modified, I'm explain why it exists. 
  2. Your example is useless. Mt4 int is not a long it's 32 bits. So you can't use those calls.
  3. No one is going to modify a three decade old file system.
 
WHRoeder:

How do you seek past 2GB when the largest integer you can have with 32 bits is 2GB?

How does the file system report the size of a 2GB file when the 32 bit integer can't hold the size.

No one put a limit in the file system. The file system has the limit because of the 32 bit integer limit it has to use.


The 2GB file length is not a 32-bit OS limitation. Win32 functions such as GetFileSize() and SetFilePointer() have support for larger files. (It's just a PITA to work with.)

And the max file size on FAT32 is 4GB, not 2GB. http://support.microsoft.com/kb/314463

MT4 is not written in MQL. The fact that MQL only has a 32-bit signed integer does not mean that MT4's internals can only use 32-bit signed integers.

MT4 has (or had) a 2GB limit on FXT files for two reasons. 1: working with files >2GB is a PITA. 2: in 2005 there were lots of FAT32 disks, there was limited bar history available in the market, and therefore there was no obvious reason for the developers to suffer the PITA of working with files >2GB.
 

So I ran a test on XP, 32bit, build 500.  The fxt file grows correctly (going beyond 4gb), but MT4 doesn't read it fully, stopping the test/results in the usual way. 

 
Trevhib:

So I ran a test on XP, 32bit, build 500.  The fxt file grows correctly (going beyond 4gb), but MT4 doesn't read it fully, stopping the test/results in the usual way. 


Hi Trevhib,

The reason for my earlier posts in this thread is exactly because, on my Windows 7 64-bit computer running build 500, a test I ran generated an FXT file of 3.8GB and the tester ran FROM THE START TO THE FINISH OF THE ENTIRE TEST PERIOD!!!  This is something that never happened before!

Can other traders verify that the same thing is happening for them, i.e. that, at least on 64-bit systems, the 2GB FXT file USAGE limit appears to have disappeared.

Cheers all.

~DV

 
dark_voyager:

Hi Trevhib,

The reason for my earlier posts in this thread is exactly because, on my Windows 7 64-bit computer running build 500, a test I ran generated an FXT file of 3.8GB and the tester ran FROM THE START TO THE FINISH OF THE ENTIRE TEST PERIOD!!!  This is something that never happened before!

Can other traders verify that the same thing is happening for them, i.e. that, at least on 64-bit systems, the 2GB FXT file USAGE limit appears to have disappeared.

Cheers all.

~DV


Hi DV.  The purpose of my test (which I conducted on a new test box), was to answer at least one of the questions (in that, in light of what you've discovered on 64-bit, it doesn't appear to have been fixed on 32-bit, as to this point I'm not sure that had been established).  At least we know that much now.

I have a laptop at home which runs Win7, 64-bit with build 500 on it too.  I'll run a test to see if I get the same outcome as you and report back.

Reason: