Ich habe kürzlich einige große Abstürze auf meinem Computer erlebt, nachdem ich einen Python -Code von mir ausgeführt habe. Mein PC frierte nach ein paar Runden einer scheinbar unproblematischen Schleife einen Bluescreen. Ich habe einige Untersuchungen durchgeführt und festgestellt, dass während der Ausführung der Schleife die Speicherverwendung ohne offensichtlichen Grund ansammeln würde. Ich benutze JupyterLab. Unten finden Sie eine MWE von dem, was das Problem in (My) JupyterLab reproduziert. < /P>
import numpy as np
import gmpy2 as gp
import psutil, os # To keep track of memory usage.
# Calculate some matrix with gmpy2 for higher precision.
# It seems that the cosine here is essential for the memory accumuluation.
def get_matrix() :
n = 2**8-1
mat = np.zeros( (n, n), dtype=object )
for i in range(n) :
for j in range(n) :
mat[i,j] = gp.cos( i*j )
return mat
# I want to keep track of memory usage so I use this.
process = psutil.Process(os.getpid())
# Compute matrix but do not save and keep track of memory usage.
for _ in range(20) :
with gp.context(gp.get_context()) as context :
context.precision = 123
get_matrix()
memory_used_in_MB = process.memory_info().rss*1e-6
print(f'Memory used: {memory_used_in_MB}')
< /code>
Meine Ausgabe liest sich. < /p>
Memory used: 207.40096
Memory used: 209.77254399999998
Memory used: 211.861504
Memory used: 213.95046399999998
Memory used: 216.04761599999998
Memory used: 218.206208
Memory used: 220.295168
Memory used: 222.384128
Memory used: 224.477184
Memory used: 226.56614399999998
Memory used: 228.655104
Memory used: 230.752256
Memory used: 232.841216
Memory used: 234.930176
Memory used: 237.019136
Memory used: 240.18944
Memory used: 243.08121599999998
Memory used: 245.448704
Memory used: 247.894016
Memory used: 250.261504
< /code>
Das ist ungerade, da ich keine der von mir generierenden Matrizen speichere. Es scheint, dass sie aus irgendeinem Grund und an einem Ort intern aufbewahrt werden, aber ich weiß nicht, warum und wie ich dies vermeiden kann. Es ist wirklich nervig, da ich natürlich regelmäßige Abstürze meines PCs bei einfachen Schleifen vermeiden möchte.
Die Speicherverwendung sammelt sich in einer einfachen Schleife, bis der PC abstürzt ⇐ Python
-
- Similar Topics
- Replies
- Views
- Last post
Mobile version