Diskuze: Vytížení paměti

Člen

Zobrazeno 7 zpráv z 7.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
Mělo by fungovat načtení nějakého velkého souboru do proměnné, ale
řeknu ti, že na tyto věci se spíše hodí nízkoúrovňové jazyky, které
ti dovolí alokovat klidně 5GB na jednom řádku
//EDIT:Tak ani to načítání nepůjde. Python má prostě určité limity.
A co takhle nekonečná rekurze?
Vytvoříš rekurzivní funkci a nastavíš hodně velkou maximální rekurzi pomocí modulu sys a funkce:
sys.setrecursionlimit()
Ještě mě napadlo:
except MemoryError: pass
Ale to bych raději nezkoušel...
Díky všem za radu. Trochu jsem se inspiroval a podařilo se mi dostat na skoro 4 GB.
Pomocí tohoto:
>>> d=[2]
>>> import sys
>>> def vypln(pocet):
for i in range(pocet):
d.append(d[:])
print(sys.getsizeof(d))
Spolehlive spadne vypln(10 na 5) 10 na 4 ještě utáhne. Zítra zkusím
použít víc seznamů, místo jednoho d
Udělal jsem si takovou jednoduchou třídu. Její použití je myslím
jasné. Kdyby někdo chtěl experimentovat
from sys import getsizeof
class MemoryFiller():
def __init__(self, megabytes = 1):
KB = []
while getsizeof(KB) <= 1024:
KB.append(True)
self._megabytes = [KB[:]
for i in range(1024 * megabytes)]
if __name__ == "__main__":
# zabere cca 6 GB paměti.
mf = MemoryFiller(6000)
Zobrazeno 7 zpráv z 7.