Frage

Ich halte in luajit einen aus dem Speicher Fehler. Wie erhöhe ich den Stapel oder Heap-Größe?

Danke

War es hilfreich?

Lösung

Ich habe nicht luajit mich, anders als mit Spielzeug Beispielen verwendet. Aber da niemand sonst keine Antworten noch zur Verfügung gestellt hat ...

Von Abschöpfen der Dokumentation hängt luajit auf den Coco Erweiterungen der Standard Koroutine Bibliothek. Eine der Änderungen von Coco eingeführt ist, dass die Funktionen, die eine neue Koroutine jetzt nehmen ein optionales Argument, das angibt, die Stack-Größe.

erstellen

die Coco docs Zitiert:

  

coro = coroutine.create(f [, cstacksize])
  func = coroutine.wrap(f [, cstacksize])

     

Das optionale Argument cstacksize   gibt die Größe des C-Stack   zuteilen für die Koroutine:

     
      
  • Eine Standard-Stack-Größe verwendet wird, wenn cstacksize nicht gegeben ist oder nil oder   Null.
  •   
  • Keine C-Stack zugeordnet, wenn cstacksize -1 ist.
  •   
  • Jeder andere Wert wird auf die Mindestgröße aufzurunden (das heißt Verwendung 1 zu erhalten   die Mindestgröße).
  •   

Es gibt auch die neue Funktion coroutine.cstacksize([newdefault]) dass Sätze die Standard-C-Stack-Größe, sowie einige entsprechenden Änderungen an den C-API.

Darüber hinaus gibt es zahlreiche Kompilierung-Konfigurationsoptionen in der luajit Version von luaconf.h. Es kann etwas drin sein, der die Standardsätze. Unter Windows gibt es auch eine Link-Zeiteinstellung für den Grund Stapel ausführbaren gesetzt von MSVC der Link.exe über die STACK Anweisung in der DEF-Datei der Anwendung.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top