RAM Speicher mit Java/python überlasten?
Mein ziel ist es, den arbeitsspeicher auf 100% zu bringen. Als hilfsprogramme sind nur intellij und pycharm zulässig. Würde mich sehr über eure ideen freuen, da ich selber schon halbwegs gut mit py und java umgehen kann, aber noch nie darüber nachgedacht habe, welche skripte den ram speicher wie stark beeinflussen?
3 Antworten
den arbeitsspeicher auf 100% zu bringen
Was sind 100%? Ein modernes Betriebssystem arbeitet mit virtuellem Speicher und entscheidet selbst, wie es diesen verwaltet. Wenn das physische RAM dabei knapp wird, kann es Teile davon Richtung Festplatte auslagern (swapping/paging) oder auch an einem gewissen Punkt einen zu großen Prozess abschießen.
Aber davon abgesehen.
Grob gesagt verbraucht jede Variable RAM - logisch, irgendwo muss sie ja gespeichert sein. Es reicht also, in einer Endlosschleife irgendeine dynamisch erweiterbare Datenstruktur zu befüllen - etwa eine Liste. Wie das in Python geht, solltest du ja wissen. Probier's aus und beobachte dabei den Task Manager oder wie das halt bei deinem Betriebssystem heißt.
Bei Java ist es grundsätzlich genauso, es gibt allerdings eine Obergrenze der JVM, was den Heap betrifft - d.h. der Prozess kann nicht unkontrolliert ins Unendliche wachsen. Man kann nun entweder beim Aufruf der JVM den Parameter -Xmx entsprechend groß setzen - oder, eher nur für Fortgeschrittene, abseits des Java-Heaps arbeiten. Auch hier kann es aber Limits des Betriebssystems geben die eventuell erreicht werden, bevor das physische RAM überhaupt ans Limit kommt.
Versuch macht kluch.
Ram weiß ich garnicht.. vielleicht dauernd files erzeugen... CPU lass ich immer mit PI Berechnungen überlasten...
du machst nen prozess, welcher rekursiv fibonacci zahlen berechnet, in welchen er in einer while True schleife neue threads erställt und jeder thread erst endet, wenn die fibonacci berechnung stackoverflowed, welche du try/catched.
wenn der thread schließt returned er jede zahl die er berechnet hat und speichert jede als string in einer liste im main thread
also, jeder thread rechnet fibo(1) dann fibo(2) usw.
dann noch mit dem Task manager die prozesspriorität auf echtzeit setzten und der computer hängt.
quasi in pseudocode als kommentar weil gutefragehurensöhne sperren bearbeitung:
```
if __name__ == "__main__"
threadlist = []
numlist = []
while True:
threadlist.add(Threading.startthread(target = fibo)
threadlist[len(threadlist)].start()
# check for thread returns
def fibo:
numlist = []
try:
#calculate fibo with growing numbers in while true, store in numlist
except:
#return that to the main thread
```