+ 8
What's the memory limit in Sololearn?
I wanted to check if the connection to Google API would work from Sololearn. Other external links work, why shouldn't this one, right? I wrote a script in Python and ran it. Turned out the connection is okay, but when I wanted to pull some data from it (either XML or json), the console output says "Memory limit exceeded". So what is the limit anyway and is there a chance it could be at least a bit higher?
10 odpowiedzi
+ 8
That settles it, thanks for clarifying, @Kirk!
+ 6
Take a look here, on my GeoProject - I'm trying to pull some 1.5kb of XML data:
https://code.sololearn.com/c57gr6Ay31s9/#py
+ 6
Okay, I finally got CentOS 7 on my Android tablet, and a full Python install. [Rant*] ... here's a followup answer:
$ python -m memory_profiler test.py
Filename: test.py
Line # Mem usage Increment Line Contents
====================================
15 7.988 MiB 0.000 MiB @profile
16 def imports():
17 10.359 MiB 2.371 MiB from urllib.request import urlopen as OPEN
18 10.359 MiB 0.000 MiB from urllib.parse import urlencode as ENCODE
19 10.641 MiB 0.281 MiB from xml.etree import ElementTree as XML
"urllib" uses 2.371 MiB. Combined with the earlier memory check, that single import is too big by more than 2x. You may notice the second import (line 18) doesn't matter (Python's already got the whole module in memory).
* Rant: Google's been pushing NEON CPU code to an unlucky group (me included) and it killed my OS...I've spent most of my time man-in-middling it / keeping it super lockdown (I have to socket SoloLearn stuff to my phone), but...
+ 5
Can you show that portion of your script? I have a snippet here that allocates more than that, but another piece of code where it gets stuck about 4-6K either direction from a pointer. It would be nice to correlate a little (or maybe add the API myself and test?)
+ 5
I'm getting a little over 1MB available to Python (wrote a heap iterator here: https://code.sololearn.com/cKVeedVg6sZV/?ref=app ).
It varies slightly between runs.
Testing...your first import fails/doesn't fail so it may be at the memory threshold. The second import succeeds more often.
I have only Android + QPython (which is out of date) so I don't know if I can test import sizes. You could use my program at home, but you have nice import tests available: import resource, psutil, and especially memory_profiler: https://pypi.python.org/pypi/memory_profiler
+ 2
Maybe you should try running generators for that. But I don't know of the memory limit. You have to consider that SoloLearn has many users and limited servers. So I would think it is in the megabytes range
+ 2
Might be. But the data pulled is some 1500 bytes altogether... Shouldn't be that much of a problem, no?
+ 2
ok, kB, then
+ 2
I tried to get down to 1200 bytes, but it still exhausts the limit. Probably not really a question of memory, but the method of accessing it in the virtual environment of Sololearn...
+ 2
Thanks man, I'll try that.