Re: Memory Problems in Windows 2003 Server

2007-10-19 Thread AMD
Thanks Marc,

I just tried shelve but it is very slow :(
I haven't tried the dbs yet.

Andre

Marc 'BlackJack' Rintsch a écrit :
 On Mon, 15 Oct 2007 11:31:59 +0200, amdescombes wrote:
 
 Are there any classes that implement disk based dictionaries?
 
 Take a look at the `shelve` module from the standard library.
 
 Or object databases like ZODB or Durus.
 
 Ciao,
   Marc 'BlackJack' Rintsch
-- 
http://mail.python.org/mailman/listinfo/python-list

Re: Memory Problems in Windows 2003 Server

2007-10-15 Thread amdescombes
Yes, I think that might be the issue, perhaps I could implement the 
solution using several dictionaries instead of just one.
Are there any classes that implement disk based dictionaries?

Thanks,

Andre

 
 I don't know whether Python dictionaries must live in a contiguous piece of
 memory, but if so, that could be the issue.  The system DLLs in Server 2003
 have been rebased in such a way that they chop up the virtual address
 space more than XP.  Even though there is more virtual memory available, it
 is fragmented.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Memory Problems in Windows 2003 Server

2007-10-15 Thread Marc 'BlackJack' Rintsch
On Mon, 15 Oct 2007 11:31:59 +0200, amdescombes wrote:

 Are there any classes that implement disk based dictionaries?

Take a look at the `shelve` module from the standard library.

Or object databases like ZODB or Durus.

Ciao,
Marc 'BlackJack' Rintsch
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Memory Problems in Windows 2003 Server

2007-10-14 Thread Tim Roberts
AMD [EMAIL PROTECTED] wrote:

I do the reading one line at a time, the problem seems to be with the 
dictionary I am creating.

I don't know whether Python dictionaries must live in a contiguous piece of
memory, but if so, that could be the issue.  The system DLLs in Server 2003
have been rebased in such a way that they chop up the virtual address
space more than XP.  Even though there is more virtual memory available, it
is fragmented.
-- 
Tim Roberts, [EMAIL PROTECTED]
Providenza  Boekelheide, Inc.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Memory Problems in Windows 2003 Server

2007-10-13 Thread AMD
Hi Brad,

I do the reading one line at a time, the problem seems to be with the 
dictionary I am creating.

Andre

 amdescombes wrote:
 Hi,

 I am using Python 2.5.1
 I have an application that reads a file and generates a key in a 
 dictionary for each line it reads. I have managed to read a 1GB file 
 and generate more than 8 million keys on an Windows XP machine with 
 only 1GB of memory and all works as expected. When I use the same 
 program on a Windows 2003 Server with 2GB of RAM I start getting 
 MemoryError exceptions!
 I have tried setting the IMAGE_FILE_LARGE_ADDRESS_AWARE on both 
 Python.exe and Python25.dll and setting the /3GB flag on the boot.ini 
 file to no avail. I still get the MemoryError exceptions.

 Has anybody encountered this problem before?

 Thanks in advance for any ideas/suggestions.

 Best Regards,

 André M. Descombes
 
 I forgot to mention that the OS itself or other processes may be using a 
 lot of memory. So, just because you have 2GB, that does not mean you can 
 access all of that at once. I would guess that 25% of memory is in 
 constant use by the OS. So, do your IO/reads in smaller chunks similar 
 to the example I gave earlier.
 
 Brad
-- 
http://mail.python.org/mailman/listinfo/python-list


Memory Problems in Windows 2003 Server

2007-10-12 Thread amdescombes
Hi,

I am using Python 2.5.1
I have an application that reads a file and generates a key in a 
dictionary for each line it reads. I have managed to read a 1GB file and 
generate more than 8 million keys on an Windows XP machine with only 1GB 
of memory and all works as expected. When I use the same program on a 
Windows 2003 Server with 2GB of RAM I start getting MemoryError exceptions!
I have tried setting the IMAGE_FILE_LARGE_ADDRESS_AWARE on both 
Python.exe and Python25.dll and setting the /3GB flag on the boot.ini 
file to no avail. I still get the MemoryError exceptions.

Has anybody encountered this problem before?

Thanks in advance for any ideas/suggestions.

Best Regards,

André M. Descombes
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Memory Problems in Windows 2003 Server

2007-10-12 Thread brad
amdescombes wrote:
 Hi,
 
 I am using Python 2.5.1
 I have an application that reads a file and generates a key in a 
 dictionary for each line it reads. I have managed to read a 1GB file and 
 generate more than 8 million keys on an Windows XP machine with only 1GB 
 of memory and all works as expected. When I use the same program on a 
 Windows 2003 Server with 2GB of RAM I start getting MemoryError exceptions!
 I have tried setting the IMAGE_FILE_LARGE_ADDRESS_AWARE on both 
 Python.exe and Python25.dll and setting the /3GB flag on the boot.ini 
 file to no avail. I still get the MemoryError exceptions.
 
 Has anybody encountered this problem before?
 
 Thanks in advance for any ideas/suggestions.
 
 Best Regards,
 
 André M. Descombes

I forgot to mention that the OS itself or other processes may be using a 
lot of memory. So, just because you have 2GB, that does not mean you can 
access all of that at once. I would guess that 25% of memory is in 
constant use by the OS. So, do your IO/reads in smaller chunks similar 
to the example I gave earlier.

Brad
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Memory Problems in Windows 2003 Server

2007-10-12 Thread brad
amdescombes wrote:
 Hi,
 
 I am using Python 2.5.1
 I have an application that reads a file and generates a key in a 
 dictionary for each line it reads. I have managed to read a 1GB file and 
 generate more than 8 million keys on an Windows XP machine with only 1GB 
 of memory and all works as expected. When I use the same program on a 
 Windows 2003 Server with 2GB of RAM I start getting MemoryError exceptions!
 I have tried setting the IMAGE_FILE_LARGE_ADDRESS_AWARE on both 
 Python.exe and Python25.dll and setting the /3GB flag on the boot.ini 
 file to no avail. I still get the MemoryError exceptions.
 
 Has anybody encountered this problem before?
 
 Thanks in advance for any ideas/suggestions.
 
 Best Regards,
 
 André M. Descombes

How are you reading the large files? IMO, large files are better read in 
chunks:

target_file = open(f, 'rb')
while 1:
 data = target_file.read(8192000)
 if data:
 DO SOMETHING
 else:
 break

The above reads 8MB at a time until the file has been completely read. 
Change the 8MB to whatever you like.
-- 
http://mail.python.org/mailman/listinfo/python-list