Announcement

Collapse
No announcement yet.

High memory usage

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • primi
    replied
    Originally posted by Okda View Post
    Build 625? Or something else
    I checked it on previous build and it was fine, didn't check it on 625 yet

    Sent from my GT-N7000 using Tapatalk
    No, 610. It was OK up until last few days. I have a suspicion it's slightly related to the number of trades it handles. But can't confirm it. At least that's what it seemed like before with the old version. With v2 this is the first time I noticed and again I have quite a few trades going on.

    Leave a comment:


  • Okda
    replied
    Build 625? Or something else
    I checked it on previous build and it was fine, didn't check it on 625 yet

    Sent from my GT-N7000 using Tapatalk

    Leave a comment:


  • primi
    replied
    Guys, are you positive there is no memory leaking with the new copier v2? Last 2 days I'm again seeing increasing memory usage from my terminal with simpletrader copier attached.

    Leave a comment:


  • WillT
    replied
    We have thousands of users on this current EA so rolling out new software is always a relatively heavy task. You can run for months and months before running into issues with the current EA, however we normally suggest users simply restart their MT4 on a weekly basis. So there is no urgent need to roll out a new version especially when the new version of MT4 is literally weeks from being released.

    Releasing software to such a vast number of users over a huge different number of brokers requires time and testing. If we weigh it up, it seems pointless to rewrite the current EA.

    We do not constantly recall start();

    I appreciate your comments though - good to see.

    Thanks.

    Leave a comment:


  • ianj
    replied
    I understand the principle of generating false ticks - i use it myself in something else to improve the responsiveness of a system in low liquidity (posting the windows message to a chart - in my case from a script)

    I understand what recursion is - calling oneself from oneself on the same thread - by that can i assume you are generating the windows message from the EA itself - synchronously (or you are calling start from withing start - eek!) - therefore increasing the call stack each time. This sounds dangerous as not only will it lead the the stack expanding for each tick but may lead to instability in the process itself as i would expect the call stack is a finite resource not necessarily tied to memory availability (not i cannot say authoritatively)

    In my case i move most of the processing into a subservient method and simply call that method repeatedly in a blocking network loop - voila - no recursion - no leak !

    My point is that it is possible to NOT LEAK NOW - you don't need to wait until the next version of MT4 - meanwhile your client are suffering NOW with something that can crash the MT4 and/or VPS if they do not take care.

    Leave a comment:


  • WillT
    replied
    Yes I'm aware of the ability to basically fake a tick. and as such run it as fast as you like however this requires external functionality that *could* have been removed come an MT4 update, so instead using recursion which would never be removed was the best idea.

    Alongside that, at the time recursion didn't appear to mem leak (it does over time). The reason for instant high memory usage is the fact there is a large stacksize specified.

    Its all relatively irrelevant now as the new MT4 build has a load of new features which fix recursion issues.

    Leave a comment:


  • ianj
    replied
    Perhaps i should point out that the tick updates are stalled when the EA is looping - once the EA has been kicked off by the first tick - and like your EA its does not respond well to attempt to modify parameters as the thread dedicated to the EA/chart is busy looping and it blocks the GUI from accessing the EA parameters - i have to check the busy flag to see if EA's have been stopped to terminate the loop - familiar ?

    I can (and do) run multiple EA instances in a single MT4 instance, so its clear that it uses 1 thread per chart/EA (but not indicator - that uses a shared thread i believe)

    Leave a comment:


  • ianj
    replied
    Did you hear what i said earlier - i have WRITTEN an EA PERSONALLY which has a similar core to any decent blocking copier. It BLOCKS on a network socket so can respond to client request IMMEDIATELY (<1ms roundtrip to client) and times out every 100ms in order to poll for feed and/or order changes, heartbeat etc. It runs full time and has done for 9-12 months. It loops continuously (ie is NOT tick driven)

    If a faster feed was required then another EA could be responsible for emitting feed updates on tick - but i did not find that necessary - 1 EA suffices for my needs

    IT DOES NOT LEAK - i can run my EA for weeks with no perceptible leakage attributed to the EA

    Leave a comment:


  • WillT
    replied
    MT4 does not memory leak on its own.

    Any EA that uses recursion (i.e. an infinite loop) will memory leak. The reason for this is that the current MT4 cannot handle recursive loops properly. The NEW version of MT4 CAN handle this, and as such will stop memory leaking.

    Nothing we can do about this I'm afraid as it stands.

    Leave a comment:


  • ianj
    replied
    Just did a quick test:
    Started EA a while ago
    11.26 22:14 17.5 97.7 MB
    11.27 00:42 32.9 106.7 MB
    11.27 11:46 87.0 157.4 MB

    I then stopped the EA a few hour ago ..
    11.27 18:16 32.9 83.1 MB

    Lets see what it is doing tomorrow without the EA running

    Leave a comment:


  • primi
    replied
    I have restarted yesterday evening, this morning it was up to 170MB already (that's when I get a warning first) and now 5 hours later it was up to 200MB.

    Is it possible we get more leaking if there are more positions open? I did not have these problems earlier.

    Leave a comment:


  • WillT
    replied
    I can confirm that as soon as you see version 2 of the EA then you'll know MT4 has rolled out the MAJOR update. And this has some very very nice features including super fast execution vs current.

    Leave a comment:


  • ianj
    replied
    BTW i also have my own (home written) EA that blocks on a network socket with a small timeout to allow it to heartbeat - this runs in ALL my MT4 instances - i use it to trade manually across all my MT4 instances. It operates in the same manner a copier would so i would expect it to suffer the same problems a copier would if it was a general MT4 problem- but it DOES NOT!

    My conclusion is that it is NOT a general MT4 problem

    Leave a comment:


  • ianj
    replied
    I just spotted my LMAX instance was 800 MB (yes 8 HUNDRED). I have not restarted for a while and on restart it was the normal 50MB or so. I run 3 other MT4 instances in the same VPS (Windows 2003) and they are still the same size - and they were restarted a few weeks ago as well - i do not restart unless i need to in general and have not generally needed to unless MT4 pushes out an update. I cannot tell you how long it took to get so high but i will monitor from now on. I am running v1.72

    Leave a comment:


  • WillT
    replied
    When you say to high - it will always use a fair amount of memory to begin with, but it shouldn't grow that quickly.

    1.9 will be slightly better on memory usage, but it will still leak (1.9 will be released in a few more days - just making some final adjustments to it)

    Leave a comment:

Working...
X