473,408 Members | 2,477 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,408 software developers and data experts.

Python and Memory

I have to pick a language to commit to for general purpose
scientific/statistical/utility/database programming at my office and
have pretty much narrowed it down to R or Python. Problem: none of
the various Python books I have looked into has had much to say about
memory. I will be operating on some big arrays, probably with Numpy;
if I run out of space and upgrade a Win 2000 or Win XP pro machine
from 256 Meg to 500Meg or even 1G will Python automatically recognize
and take advantage of the increase? Where are questionss such as this
discussed in the documentation?

Thanks for any suggestions,

Ben Fairbank
Jul 18 '05 #1
7 5831
On Thu, Oct 02, 2003 at 04:59:15AM +0000, Ben Fairbank wrote:
I have to pick a language to commit to for general purpose
scientific/statistical/utility/database programming at my office and
have pretty much narrowed it down to R or Python. Problem: none of
the various Python books I have looked into has had much to say about
memory. I will be operating on some big arrays, probably with Numpy;
Python isn't terribly memory-efficient. Every int, for example, takes all
the overhead of an object plus any allocator overheads. But if the bulk
of the data is going to be numpy arrays this isn't a problem. An array
object has a small one-time overhead and then each item takes exactly its
native size in bytes. Make sure you use in-place operations as much as
possible on arrays so you don't force numpy to allocate large temporary
arrays.
if I run out of space and upgrade a Win 2000 or Win XP pro machine
from 256 Meg to 500Meg or even 1G will Python automatically recognize
and take advantage of the increase? Where are questionss such as this
discussed in the documentation?


Python can immediately use any memory expansion. It also runs on 64 bit
platforms if you ever need more than 4GB of data.

Oren

Jul 18 '05 #2
ba*@texas.antispam.net (Ben Fairbank) writes:
I have to pick a language to commit to for general purpose
scientific/statistical/utility/database programming at my office and
have pretty much narrowed it down to R or Python. Problem: none of
the various Python books I have looked into has had much to say about
memory. I will be operating on some big arrays, probably with Numpy;
Hmm. Python is not *amazingly* memory efficient. But if you're
dealing with relatively few Numpy arrays, the memory consumption will
probably not be that much more than any other language you use
(unlike, say, using a list of floats).
if I run out of space and upgrade a Win 2000 or Win XP pro machine
from 256 Meg to 500Meg or even 1G will Python automatically recognize
and take advantage of the increase?
This is more a question about the OS than Python. I would be amazed
if Python couldn't use the extra memory.
Where are questionss such as this discussed in the documentation?


I don't think they are, really. The numpy manual might have a few
words to say on the subject.

Cheers,
mwh

--
Famous remarks are very seldom quoted correctly.
-- Simeon Strunsky
Jul 18 '05 #3
Ben Fairbank wrote:
I have to pick a language to commit to for general purpose
scientific/statistical/utility/database programming at my office and
have pretty much narrowed it down to R or Python. Problem: none of
the various Python books I have looked into has had much to say about
memory. I will be operating on some big arrays, probably with Numpy;
if I run out of space and upgrade a Win 2000 or Win XP pro machine
from 256 Meg to 500Meg or even 1G will Python automatically recognize
and take advantage of the increase? Where are questionss such as this
discussed in the documentation?


Python gets its information about memory (and allocates its memory)
from the operating system. This is not discussed in the documentation
because it's more or less taken for granted -- that's what one should
assume of any app or language unless other behavior is documented. If
your Win/2K, Win/XP, or whatever, is able to see your new memory and
make it available to apps (and I see no reason why not), Python, like
any other normal app, should be able to use it just fine.
Alex

Jul 18 '05 #4
In article <3f***************@news.houston.sbcglobal.net>,
Ben Fairbank <ba*@texas.antispam.net> wrote:
I have to pick a language to commit to for general purpose
scientific/statistical/utility/database programming at my office and
have pretty much narrowed it down to R or Python. Problem: none of
the various Python books I have looked into has had much to say about
memory. I will be operating on some big arrays, probably with Numpy;
if I run out of space and upgrade a Win 2000 or Win XP pro machine
from 256 Meg to 500Meg or even 1G will Python automatically recognize
and take advantage of the increase? Where are questionss such as this
discussed in the documentation?

Jul 18 '05 #5
Ben Fairbank wrote:
I have to pick a language to commit to for general purpose
scientific/statistical/utility/database programming at my office and
have pretty much narrowed it down to R or Python.

In a previous life, I went for R and Python and eventually
stayed in python (with numeric, of course) because, in my case,
moving data over to R and then operating there was always more
expensive than simply doing the calculations in python. These
days I'd check if numarray did the trick. If you want to play
in this world, check out the enthought packaging of python:

http://www.enthought.com/python/

They've got most of the goodies in there that you'd be likely
to want to run out and add to your python in the first months.

-Scott David Daniels
Sc***********@Acm.Org

Jul 18 '05 #6
In article <vn************@corp.supernews.com>, I offered:
In article <3f***************@news.houston.sbcglobal.net>,
Ben Fairbank <ba*@texas.antispam.net> wrote:
I have to pick a language to commit to for general purpose
scientific/statistical/utility/database programming at my office and
have pretty much narrowed it down to R or Python. Problem: none of

.
.
.
Tough choice. As your research apparently has already
disclosed, both R and Python are quite capable in the
role you're contemplating. The differences between
them are likely to be the deep sort that are difficult
to determine beforehand. Are you aware that, at least
within limits, you don't *have* to choose? <URL:
http://www.togaware.com/linux/survivor/Python_R.html >?


I apparently misled some readers. I want to emphasize: both
R and Python are wonderful for the sort of scientific program-
ming under consideration here. Anyone who has narrowed down
his choices to these two has already done all the hard work.
It's reasonably safe to choose either, without regrets; there
is no need in general to learn both.

<URL: http://phaseit.net/claird/comp.progr...e_science.html >
provides reading of related interest.
--

Cameron Laird <Ca*****@Lairds.com>
Business: http://www.Phaseit.net
Personal: http://phaseit.net/claird/home.html
Jul 18 '05 #7
Ben Fairbank wrote:
I have to pick a language to commit to for general purpose
scientific/statistical/utility/database programming at my office and
have pretty much narrowed it down to R or Python. Problem: none of
the various Python books I have looked into has had much to say about
memory. I will be operating on some big arrays, probably with Numpy;
if I run out of space and upgrade a Win 2000 or Win XP pro machine
from 256 Meg to 500Meg or even 1G will Python automatically recognize
and take advantage of the increase? Where are questionss such as this
discussed in the documentation?

Thanks for any suggestions,


For large arrays, look into numarray (next-gen Numeric). That's where most of
the effort of numarray has gone: being a _lot_ smarter than Numeric in memory
management for large arrays. It's also cleaner and nicer than numeric in many
ways, and already mature enough that many people are using it for production
work. Its only big stumbling block right now is that small array performance
is pretty poor, and this one will take a bit of time to fix.

I'd personally stick to python (with the scipy libraries, as was already
suggested), and would add the RPy interface for those cases when you need a
routine which R provides, which you need NOW, and which would be more work to
write in python.

Cheers,

f.
Jul 18 '05 #8

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

4
by: lebo | last post by:
Hi I'm trying to understand how Python handles memory usage and dynamic object loading and unloading. Problem to solve? Build a very low memory footprint (non-GUI) Python application for...
3
by: Saravanan | last post by:
Hello, Im running Python Application as a Windows Service (using windows extensions). But, sporadically the application crashes (crash in Python23.dll) and this stops the service. This...
0
by: Robby Dermody | last post by:
Hey guys (thus begins a book of a post :), I'm in the process of writing a commercial VoIP call monitoring and recording application suite in python and pyrex. Basically, this software sits in a...
25
by: abhinav | last post by:
Hello guys, I am a novice in python.I have to implement a full fledged mail server ..But i am not able to choose the language.Should i go for C(socket API) or python for this project? What are the...
20
by: mariano.difelice | last post by:
Hi, I've a big memory problem with my application. First, an example: If I write: a = range(500*1024) I see that python process allocate approximately 80Mb of memory.
17
by: frederic.pica | last post by:
Greets, I've some troubles getting my memory freed by python, how can I force it to release the memory ? I've tried del and gc.collect() with no success. Here is a code sample, parsing an XML...
5
by: vishnu | last post by:
Hi there, I am embedding python 2.5 on embedded system running on RTOS where I had strict memory constraints. As python is a huge malloc intensive application, I observed huge memory...
206
by: WaterWalk | last post by:
I've just read an article "Building Robust System" by Gerald Jay Sussman. The article is here: http://swiss.csail.mit.edu/classes/symbolic/spring07/readings/robust-systems.pdf In it there is a...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...
0
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.