Skip to main content
xmltostruct:"Memory allocation failure"
xmltostruct:"Memory allocation failure"

grumbel 

This question&answer editor is also a little bit buggy
If the internet connection is slow and the page is not fully loaded, one can already go to the edit mode and then save. But without any content 😔

---


I create a very simple procedure to convert a XML to STRUCT over and over

  v_HEAPSIZE_STR = $processinfo("heapsize")

  FOR v_LFD = 1 TO 999
    v_HEAPSIZE_BFR = $processinfo("heapsize")

    xmltostruct vy_STRUCT,vx_XML
    v_STATUS = $status

    vy_STRUCT = ""

    v_HEAPSIZE_AFT = $processinfo("heapsize")
    v_DIFF1 = v_HEAPSIZE_AFT - v_HEAPSIZE_BFR
    v_DIFF2 = v_HEAPSIZE_AFT - v_HEAPSIZE_STR
    v_TMP1 = "[%%v_LFD]  heapsize(bfr)=%%LF_FMT_HS(v_HEAPSIZE_BFR)%%%,  heapsize(aft)=%%LF_FMT_HS(v_HEAPSIZE_AFT)%%%,  diff1 = %%LF_FMT_HSD(v_DIFF1)%%%,  diff2 = %%LF_FMT_HSD(v_DIFF2)%%%"
    putmess v_TMP1
    message/hint v_TMP1
    IF(v_STATUS<0)
      debug
      BREAK
    ENDIF


=== And here is the result ===

[n] is the round
heapsize(bfr) is the heapsize before xmltostruct
heapsize(aft) is the heapsize afte xmltostruct AND xy_STRUCT=""
diff1 is the difference betwenn before and after
diff is the difference from the start on

I did remove "heapsize(xyz)" and "diffn" , so each round goes into one line

hs(start)= 73 814 016, xmlsize= 14 048 432
     heapsize(bfr) heapsize(aft) diff1            diff2
[1]   73 814 016,  76 169 216, +   2 355 200, +   2 355 200
[2]   76 169 216,  76 128 256, -      40 960, +   2 314 240
[3]   76 128 256,  76 984 320, +     856 064, +   3 170 304
[4]   76 984 320,  77 119 488, +     135 168, +   3 305 472
[5]   77 119 488,  77 103 104, -      16 384, +   3 289 088
[6]   77 074 432,  78 278 656, +   1 204 224, +   4 464 640
[7]   78 278 656,  78 688 256, +     409 600, +   4 874 240
[8]   78 688 256,  79 708 160, +   1 019 904, +   5 894 144
[9]   79 708 160,  79 564 800, -     143 360, +   5 750 784
[10]  79 564 800,  78 823 424, -     741 376, +   5 009 408
[11]  78 823 424, 374 747 136, + 295 923 712, + 300 933 120
[12] 374 747 136,  79 773 696, - 294 973 440, +   5 959 680
[13]  79 773 696,  79 671 296, -     102 400, +   5 857 280
[14]  79 745 024,  79 536 128, -     208 896, +   5 722 112
[15]  79 536 128,  79 536 128, +           0, +   5 722 112
[16]  79 536 128,  79 802 368, +     266 240, +   5 988 352
[17]  79 802 368,  79 613 952, -     188 416, +   5 799 936
[18]  79 613 952,  79 335 424, -     278 528, +   5 521 408
[19]  79 335 424,  79 974 400, +     638 976, +   6 160 384
[20]  79 974 400,  79 667 200, -     307 200, +   5 853 184
[21]  79 634 432,  80 367 616, +     733 184, +   6 553 600
[22]  80 367 616,  80 347 136, -      20 480, +   6 533 120
[23]  80 347 136, 372 473 856, + 292 126 720, + 298 659 840
[24] 372 473 856,  79 446 016, - 293 027 840, +   5 632 000
[25]  79 446 016,  80 424 960, +     978 944, +   6 610 944
[26]  80 424 960,  80 076 800, -     348 160, +   6 262 784
[27]  80 076 800,  80 523 264, +     446 464, +   6 709 248
[28]  80 523 264,  80 171 008, -     352 256, +   6 356 992
[29]  80 171 008,  80 060 416, -     110 592, +   6 246 400
[30]  80 060 416,  80 465 920, +     405 504, +   6 651 904
[31]  80 465 920,  80 412 672, -      53 248, +   6 598 656
[32]  80 412 672, 369 483 776, + 289 071 104, + 295 669 760
[33] 369 483 776,  80 306 176, - 289 177 600, +   6 492 160
[34]  80 306 176,  80 805 888, +     499 712, +   6 991 872
[35]  80 773 120,  79 925 248, -     847 872, +   6 111 232
[36]  79 925 248,  79 917 056, -       8 192, +   6 103 040
[37]  79 917 056,  80 240 640, +     323 584, +   6 426 624
[38]  80 240 640,  80 928 768, +     688 128, +   7 114 752

very strange
In special, each ~10th round, there is a peak from ~300 Mb
and the memory uses goes up and up

I'll send the lab a test set

But if anyone do have an explanation ... 🙂

Ingo