MT4/MT5のパネルが「重い・固まる」のはなぜか:自作ツールで原因を測りました
FX
MT4/MT5のインジケーターや便利ツールを作っているYohakuです。作るものは、ゴゴジャンのレビューや質問に出てくる不満から決めています。
パネルを出すツールについて、「重い」「通貨ペアや時間足を切り替えると固まる」という悩みを見かけます。自作の試作パネルでも同じことが起きたので、原因を測って、直し方を見つけました。買う前にデモで確かめる手順まで書きます。
先に結論
- 自作の試作パネルが重くなった原因は、毎秒、画面の部品(線・ボタン・文字)を全部書き直していたことでした。
- とくにMac版(Wine)のMT5では、部品の操作1回ごとに待ち合わせが起きるため、混んでいるときは1回の表示に数十秒かかり、その間チャートがふさがることがあります。
- 「変わったところだけ書き直す」作りにすると、ふだんの負荷はほとんど無くなりました(自作の試作で実測)。
測った条件
- 2026年10月8日、Mac版(Apple製チップ)のMT5
- EURUSDの5分足のチャートに、自作のパネルと、MT標準のFractalsを一緒に置く
- 処理1回にかかる時間を記録する版を作って、前の作りと新しい作りを比べた
結果
前の作り(毎秒、部品を全部書き直す)
- 1回の表示にかかる時間は、平均67〜94ミリ秒、最大153〜188ミリ秒。1回の表示で、部品の操作を200回ほどしていました。
- チャートが混んでいるときは、1回の表示に28〜69秒かかった回がありました。その間、チャートが外からの問い合わせに答えられませんでした。
新しい作り(変わったところだけ書き直す)
- 何も変わらない秒は、書き込み0回で、平均0.03ミリ秒、最大0.18ミリ秒。
- 新しい足ができて表示が変わる回だけ、6〜10回ほど書き直します。
- 見た目は前の作りと同じです。
なぜ重くなるのか
MT4/MT5で、パネルの線・ボタン・文字は「オブジェクト」という部品です。この部品を作る・変える操作は、Mac版(Wineという仕組みでWindows版を動かしています)では、1回ごとにチャートと待ち合わせます。
パネルを毎秒、全部の部品(200回ほど)作り直すと、その待ち合わせが積み重なります。チャートが混んでいるほど、1回の待ち合わせが長くなり、表示全体で数十秒になることがあります。
直し方は、部品ごとに前回の位置・文字・色を覚えておき、変わったところだけ書き直すことです。何も変わっていない秒は、何も書きません。これで、ふだんの負荷がほとんど無くなりました。