FXTファイルの2GB制限はまだあるのでしょうか? - ページ 2

 
WHRoeder:

2GBの制限は2つあります。

  1. FXTと同様にシーケンシャルリード/ライト。ファイル長2GBの制限は、32bitOSの制限です。64bitOSで動作させる
  2. ランダム読み出し(ポジションシーク。)2GBを超えるオフセットには64ビットアプリケーションが必要です。


32/64のOSによる制限はなく、ファイルサイズの制限は使用するファイルシステムによるものです。まだFATを使用している場合は、アップグレードの時期が来ていると思われます。
 

32ビットで持てる最大の整数が2GBであるとき、どのように2GBを越えてシークするのでしょうか?

32ビットの整数ではサイズを保持できないのに、ファイルシステムはどうやって2GBのファイルのサイズを報告するのでしょう。

誰もファイルシステムに制限を設けてはいません。ファイルシステムには32ビット整数の制限があるため、その制限があるのです。

 
WHRoeder:
32ビットで持てる最大の整数が2GBなのに、どうやって2GBを超えるものを求めるんだ?
インクリメンタル?
 
いいえ、ファイルシステムはまだ読み取りの間にどこにあるかを覚えている必要があり、できません。
 
WHRoeder:

32ビットで持てる最大の整数が2GBであるとき、どのように2GBを越えてシークするのでしょうか?

32ビットの整数ではサイズを保持できないのに、ファイルシステムはどうやって2GBのファイルのサイズを報告するのでしょう。

誰もファイルシステムに制限を設けてはいません。ファイルシステムには32ビット整数の制限があるため、その制限があるのです。


あなたは間違っています。 複数の 整数を使用することを妨げるものは何 ですか?たとえば
 
  1. いいえ、そんなことはありません。修正できないとは言っていない、なぜそれが存在するのかを説明しているのだ。
  2. あなたの例は無駄です。Mt4のintはlongではなく32ビットです。だから、その呼び出しは使えない。
  3. 誰も30年前のファイルシステムを修正するつもりはない。
 
WHRoeder:

32ビットで持てる最大の整数が2GBであるとき、どのように2GBを越えてシークするのでしょうか?

32ビットの整数ではサイズを保持できないのに、ファイルシステムはどうやって2GBのファイルのサイズを報告するのでしょう。

誰もファイルシステムに制限を設けてはいません。ファイルシステムには32ビット整数の制限があるため、その制限があるのです。


2GBのファイル長は、32ビットOSの制限ではありません。GetFileSize()やSetFilePointer()などのWin32関数には、より大きなファイルをサポートする機能があります。(

また、FAT32の最大ファイルサイズは2GBではなく4GBです。http://support.microsoft.com/kb/314463

MT4はMQLで書かれているわけではありません。MQLが32ビット符号付き整数しか持っていないということは、MT4の内部が32ビット符号付き整数しか使えないということではありません。

MT4がFXTファイルに2GBの制限を設けている(または設けていた)理由は2つあります。1: 2GBを超えるファイルを扱うのは面倒である。2: 2005年には、FAT32ディスクがたくさんあり、市場で利用可能なバーヒストリーが限られていたため、開発者が2GBを超えるファイルを扱うというPITAに悩まされる明白な理由がなかったのです。
 

そこで、XP、32bit、ビルド500でテストしてみたところ、fxtファイルは正しく成長する(4gbを超える)のですが、MT4がそれを完全に読み取れず、通常の方法でテスト/結果が停止してしまいます。

 
Trevhib:

XP、32bit、ビルド500でテストしたところ、fxtファイルは正しく成長(4gbを超える)しますが、MT4はそれを完全に読み込まず、通常の方法でテスト/結果を停止します。


Trevhibさん、こんにちは。

このスレッドで私が先に投稿した理由は、まさに、ビルド500を実行している私のWindows 7 64ビットコンピュータで、私が実行したテストが3.8GBのFXTファイルを生成し、テスターがすべてのテスト期間の最初から最後まで作動したからです! これは、これまでになかったことです! このスレッドで私が先に投稿した理由は、まさに、私が実行したテストで、FXTファイルが生成され、テスターがテスト期間の最初から最後までに作動したからです! これは、かつてなかったことです

他のトレーダーも同じことが起こっているか、つまり、少なくとも64ビットシステムでは、2GBのFXTファイルのUSAGE制限がなくなったように見えるかどうかを確認できますか。

ありがとうございました。

~DV

 
dark_voyager:

Trevhibさん、こんにちは。

このスレッドで私が先に投稿した理由は、まさに、ビルド 500 を実行している Windows 7 64 ビットコンピュータで、私が行ったテストで 3.8GB の FXT ファイルを生成し、テスターがテスト期間中、最初から最後まで動作したからです! これは、これまで一度も起こったことのないことです!

他のトレーダーも同じことが起こっているか、つまり、少なくとも64ビットシステムでは、2GBのFXTファイルのUSAGE制限がなくなったように見えるかどうかを確認できますか。

ありがとうございます。

~DV


こんにちは、DV。 私のテストの目的は(新しいテストボックスで行った)、少なくとも質問の一つに答えることでした(64ビットで発見したことに照らして、32ビットでは修正されていないようです。 この時点では、それが確立されているとは思えません)。少なくとも、今はそれだけが分かっているのです。

私も自宅でWin7, 64-bit, build 500のラップトップを使用しています。 皆さんと同じ結果が得られるかどうかテストを行い、報告します。