O limite de 2GB para arquivos FXT ainda está por aí? - página 2

 
WHRoeder:

Há duas limitações de 2GB.

  1. Leitura/escrita seqüencial como FXT: O limite de 2GB de comprimento de arquivo é uma limitação de 32 bit de SO. Execute um sistema operacional de 64 bits.
  2. Leitura aleatória (busca de posição.) Requer uma aplicação de 64 bits para offsets acima de 2GB.


Não há tais limitações baseadas no sistema operacional 32/64, a limitação do tamanho do arquivo vem do sistema de arquivos utilizado. Se você ainda estiver usando FAT, provavelmente é hora de atualizar.
 

Como você procura além de 2GB quando o maior inteiro que você pode ter com 32 bits é 2GB?

Como o sistema de arquivo informa o tamanho de um arquivo de 2GB quando o inteiro de 32 bits não consegue segurar o tamanho.

Ninguém coloca um limite no sistema de arquivo. O sistema de arquivo tem o limite por causa do limite de 32 bits inteiros que ele tem que usar.

 
WHRoeder:
Como você procura além de 2GB quando o maior inteiro que você pode ter com 32 bits é 2GB?
Incrementalmente ?
 
não, o sistema de arquivo ainda tem que lembrar onde está entre leituras e não pode.
 
WHRoeder:

Como você procura além de 2GB quando o maior inteiro que você pode ter com 32 bits é 2GB?

Como o sistema de arquivo informa o tamanho de um arquivo de 2GB quando o inteiro de 32 bits não consegue segurar o tamanho.

Ninguém coloca um limite no sistema de arquivo. O sistema de arquivo tem o limite por causa do limite de 32 bits inteiros que ele tem que usar.


Você está errado. O que os impede de usar mais de um número inteiro? Por exemplo, o que os impede de usar mais de um número inteiro?
 
  1. Não, não estou. Não estou dizendo que não poderiam ser modificados, estou explicando porque existe.
  2. Seu exemplo é inútil. Mt4 int não é um longo, é 32 bits. Portanto, você não pode usar essas chamadas.
  3. Ninguém vai modificar um sistema de arquivos com três décadas.
 
WHRoeder:

Como você procura além de 2GB quando o maior inteiro que você pode ter com 32 bits é 2GB?

Como o sistema de arquivo informa o tamanho de um arquivo de 2GB quando o inteiro de 32 bits não consegue segurar o tamanho.

Ninguém coloca um limite no sistema de arquivo. O sistema de arquivo tem o limite por causa do limite de 32 bits inteiros que ele tem que usar.


O comprimento do arquivo de 2GB não é uma limitação do SO de 32 bits. Funções Win32 tais como GetFileSize() e SetFilePointer() têm suporte para arquivos maiores. (É apenas um PITA para trabalhar.)

E o tamanho máximo do arquivo em FAT32 é de 4GB, não 2GB.

MT4 não está escrito em MQL. O fato de a MQL ter apenas um inteiro assinado de 32 bits não significa que os internos da MT4 só possam usar inteiros assinados de 32 bits.

A MT4 tem (ou teve) um limite de 2GB em arquivos FXT por duas razões. 1: trabalhar com arquivos >2GB é um PITA. 2: em 2005 havia muitos discos FAT32, havia um histórico limitado de barras disponíveis no mercado e, portanto, não havia razão óbvia para os desenvolvedores sofrerem o PITA de trabalhar com arquivos >2GB.
 

Então eu fiz um teste com XP, 32bit, build 500. O arquivo fxt cresce corretamente (indo além de 4gb), mas o MT4 não o lê completamente, parando o teste/resultados da maneira usual.

 
Trevhib:

Então eu fiz um teste com XP, 32bit, build 500. O arquivo fxt cresce corretamente (indo além de 4gb), mas o MT4 não o lê completamente, parando o teste/resultados da maneira usual.


Oi Trevhib,

A razão de meus posts anteriores neste tópico é exatamente porque, em meu computador Windows 7 64-bit rodando build 500, um teste que eu fiz gerou um arquivo FXT de 3,8GB e o testador correu do início ao fim do período de testes ENTIRE!! Isto é algo que nunca aconteceu antes!

Outros comerciantes podem verificar que o mesmo está acontecendo com eles, ou seja, que, pelo menos em sistemas de 64 bits, o limite de 2GB do arquivo FXT USAGE parece ter desaparecido.

Saúde a todos.

~DV

 
dark_voyager:

Oi Trevhib,

A razão de meus posts anteriores neste tópico é exatamente porque, em meu computador Windows 7 64-bit rodando build 500, um teste que eu fiz gerou um arquivo FXT de 3,8GB e o testador correu do início ao fim do período de testes ENTIRE!! Isto é algo que nunca aconteceu antes!

Outros comerciantes podem verificar que o mesmo está acontecendo com eles, ou seja, que, pelo menos em sistemas de 64 bits, o limite de 2GB do arquivo FXT USAGE parece ter desaparecido.

Saúde a todos.

~DV


Olá DV. O objetivo do meu teste (que realizei em uma nova caixa de teste), era responder a pelo menos uma das perguntas (na medida em que, à luz do que você descobriu em 64 bits, não parece ter sido fixado em 32 bits, pois até este ponto não tenho certeza de que tenha sido estabelecido). Pelo menos sabemos isso agora.

Tenho um laptop em casa que roda Win7, 64-bit com build 500 nele também. Vou fazer um teste para ver se consigo o mesmo resultado que você e faço um relatório.

Razão: