InsertJSONList() ein Limit bei x86 ?

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
Bisonte
Beiträge: 2468
Registriert: 01.04.2007 20:18

InsertJSONList() ein Limit bei x86 ?

Beitrag von Bisonte »

In einem Projekt bekomme ich mit PB 6.xx x86! unter Windows einen IMA bei InsertJSONList(), wenn die Liste grösser wird.
(Dieses Handling wird zum Export von Datenbank-Tables genutzt...)

In meinem folgenden Beispiel, kommt ein IMA direkt bei Max = 200.000 .... bei 100.000 noch nicht.

Es ist auch egal ob man ASM oder C-Backend nutzt.

Mit x64 ist das ganze kein Problem, da rauscht es ohne Fehlermeldung durch, Egal wie gross die Liste ist.

Code: Alles auswählen

Structure s_resultItem
  AsString.s
  AsNumber.q
EndStructure

Structure s_result
  Map Column.s_resultItem()
EndStructure

NewList Row.s_result()

Procedure.i ExportResults(FileName.s, List Row.s_result())
  
  Protected jSon = CreateJSON(#PB_Any, #PB_JSON_NoCase)
  Protected Result = #False
  
  If jSon
    
    Debug ListSize(Row())
    
    InsertJSONList(JSONValue(jSon), Row())
    Result = SaveJSON(jSon, FileName, #PB_JSON_PrettyPrint)
    FreeJSON(jSon)
    
  EndIf
  
  ProcedureReturn Result
  
EndProcedure

Filename.s = "R:\testfile.json" ; Change it !

Max = 200000 ; IMA at InsertJSONList()
;Max = 100000 ; No Error

For i=1 To Max
  AddElement(Row())
  For x = 65 To 89
  Row()\Column(Chr(x))\AsString = Chr(x) + "a1"
  Row()\Column(Chr(x))\AsNumber = Random(200000, 0)
  Next x
Next i

ExportResults(Filename, Row())
Ist das ein Bug oder eher etwas, was ich verreisse ?

Edit : x86 ist leider wichtig, da in dem Projekt die EZTW.lib genutzt wird und die leider nur in 32Bit zur Verfügung steht!
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom​​