Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #95395
| From | Terry Reedy <tjreedy@udel.edu> |
|---|---|
| Subject | Re: memory control in Python |
| Date | 2015-08-15 13:28 -0400 |
| References | <CAM5e_kbbTAEHE=mi0WFXutJ5G2A-UV4wLsAPMcBT5XrCqhr3MA@mail.gmail.com> <87io8hc8z3.fsf@handshake.de> |
| Newsgroups | comp.lang.python |
| Message-ID | <mailman.31.1439659711.4764.python-list@python.org> (permalink) |
On 8/15/2015 3:21 AM, dieter wrote: > Ping Liu <yanzhipingliu@gmail.com> writes: >> ... >> For small cases, Python works well. But if we consider longer time period. >> then it would fail due to the memory usage issues. We have tested several >> case studies to check the memory use for different time period, including >> 1) 2 hours in one day, 2) 24 hours in one day, 3) 20 days with 24 hours >> each day, as well as 4) 30 days with 24 hours each day. The first 3 cases >> are feasible while the last case gives out the memory error. >> >> When we are testing the forth case, the memory error comes out while >> creating the inequality constraints. The problem size is 1) Aeq: 12 * 26, >> Aineq: 30 * 26; 2) Aeq: 144*268, Aineq:316*268; 3) Aeq: 2880*5284, Aineq: >> 6244*5284; 4) Aeq: 4320 * 7924, Aineq is unknown due to the memory error. >> >> The solver is CPLEX (academic). It turns out that the solver is taking a >> lot of memory as you can see in the memory test report. for the first three >> cases, different memory usage is observed, and it grows up dramatically >> with the increase of the time period. 1) solver memory usage: 25.6 MB, 2) >> 19.5 MB; 3) solver memory usage: 830.0742 MB. Make sure that the solver is using numpy arrays. > The C implementation of Python (called "CPython") does not use > memory compaction and places most of its objects on the heap. > Those implementations tend to suffer from memory fragmentation in > long running processes with large memory use. This can be helped somewhat by reusing arrays instead of deleting and creating a new one. > You may consider "Jython" (a Python implementation in "Java") or > "IronPython" (a ".Net" based Python implementation) to get a > Python implementation with memory compaction. > -- Terry Jan Reedy
Back to comp.lang.python | Previous | Next | Find similar | Unroll thread
Re: memory control in Python Terry Reedy <tjreedy@udel.edu> - 2015-08-15 13:28 -0400
csiph-web