Error "Program memory slow !!"

  • Hello,


    does anybody know the error message "Program memory slow !!"?
    A customer told me about that message but I don't know the reason for this message? I guess this is a system message?
    How it is caused and how to avoid it?



    Thanks a lot in advance.


    Andy

  • Hello,
    I think the message is "Program memory low".
    It means, that there is not enough program memory. Possibly there is a memory leak somewhere in the code.
    Regards
    Holger

    F&S Elektronik Systeme GmbH
    As this is an international forum, please try to post in English.
    Da dies ein internationales Forum ist, bitten wir darum, Beiträge möglichst in Englisch zu verfassen.

  • Hello,


    just a further question.
    Are there some useful and no expensive tools to detect some memory leaks?
    Or maybe some memory monitor tools which could help to detect such memory leaks?


    Thanks a lot in advance.


    Andy

  • Quote from "Kaiser"

    Are there some useful and no expensive tools to detect some memory leaks?
    Or maybe some memory monitor tools which could help to detect such memory leaks?


    If you are working with EVC++, there is the Remote Heap Walker that can help. When debugging, for example in a regularly encountered breakpoint, you can update the heap view and there you can see what is stored in the heap. Then you can recognize when the heap grows and grows or contains elements that you don't expect to be there anymore.


    Regards,


    H. Keller

    F&S Elektronik Systeme GmbH
    As this is an international forum, please try to post in English.
    Da dies ein internationales Forum ist, bitten wir darum, Beiträge möglichst in Englisch zu verfassen.

  • Hallo,


    habe noch eine weitere Frage zum Speicher.
    Laut Prospekt besitzt der NetDCU6 32MB Ram und 32MB Flash Speicher.
    Der Flash Speicher wird von mir in 7MB OS und 24MB FFSDISK gesetzt. Das ist, hoffe ich zumindest, soweit klar.


    Wie sieht es beim Programmspeicher aus?
    Unter "System Properties/General" ist zu lesen, dass 21582KB RAM Memory existieren bzw. verfügbar sind.
    Einen Reiter weiter (Memory) wird folgendes angezeigt:
    Storage Memory: allocated: 10924KB, in use: 2908KB
    Program Memory: allocated: 10928KB, in use: 7492KB


    1) Wo sind die restlichen 13MB RAM Memory, wenn unter "System Properties/General" 21MB verfügbar sind?
    2) Was genau ist "Storage Memory" und was "Program Memory"?
    3) Wie kann der Wert für "allocated memory" für storage oder program per registry oder per ndcucfg verändert und gespeichert werden? Oder ist dies nur über diesen Schiebebalken möglich? Ändere ich den Wert per Schiebebalken, dann ist er nach dem Neustart wieder wie bisher. In der Registry finde ich auch keinen Eintrag mit "memory".



    Vielen Dank schon mal im Voraus.


    Mit freundlichen Grüßen


    Andy

  • Quote from "Kaiser"

    1) Wo sind die restlichen 13MB RAM Memory, wenn unter "System Properties/General" 21MB verfügbar sind?


    Ein Teil des Speichers wird für das OS benötigt. Darin werden die Datenstrukturen und Variablen des Kernels wie z.B. die Pagetables für das virtuelle Speichersystem verwaltet. Auch der Kernel selbst kann nicht aus dem Flash heraus laufen, sondern wird ins RAM geladen, inklusive aller Treiber für die Hardware. Das sind die "fehlenden" MB.


    Quote

    2) Was genau ist "Storage Memory" und was "Program Memory"?


    Der restliche Speicher, der nicht direkt vom OS gebraucht wird, steht einerseits für Programme und deren Heaps und Stacks zur Verfügung (Program Memory) und andererseits für das virtuelle Filesystem. Wenn Sie z.B. in das Wurzelverzeichnis oder in das Windows-Unterverzeichnis Dateien abspeichern, dann liegen diese Daten nur im RAM in einer Art RAM-Disk. Das ist dann das Storage Memory.


    Da ein WinCE-System keine Auslagerungsdatei besitzt, muss der maximal für Programme zu nutzende Speicher konkret angegeben werden. Wenn Sie nur wenige bis gar keine Dateien ins RAM-Filesystem abspeichern wollen, dann können Sie den Bereich für das Program Memory entsprechend groß und für Storage Memory sehr klein machen. Standardmäßig ist der freie Speicher jedoch 50:50 aufgeteilt.


    Quote

    3) Wie kann der Wert für "allocated memory" für storage oder program per registry oder per ndcucfg verändert und gespeichert werden? Oder ist dies nur über diesen Schiebebalken möglich? Ändere ich den Wert per Schiebebalken, dann ist er nach dem Neustart wieder wie bisher. In der Registry finde ich auch keinen Eintrag mit "memory".


    Einen Registry-Eintrag hierzu gibt es leider nicht, auch kann die Einstellung nicht dauerhaft gemacht werden. Wie die Aufteilung aber per Software beim Systemstart einzustellen geht, darüber gibt es schon einen ausführlichen eigenen Beitrag (klick mich).


    Mit freundlichen Grüßen,


    H. Keller

    F&S Elektronik Systeme GmbH
    As this is an international forum, please try to post in English.
    Da dies ein internationales Forum ist, bitten wir darum, Beiträge möglichst in Englisch zu verfassen.