• 8
name

A PHP Error was encountered

Severity: Notice

Message: Undefined index: userid

Filename: views/question.php

Line Number: 191

Backtrace:

File: /home/prodcxja/public_html/questions/application/views/question.php
Line: 191
Function: _error_handler

File: /home/prodcxja/public_html/questions/application/controllers/Questions.php
Line: 433
Function: view

File: /home/prodcxja/public_html/questions/index.php
Line: 315
Function: require_once

Generally, failing to close cursors is one of the most common kinds of memory leaks. The garbage collector can't see the MySQL resources involved in the cursor. MySQL doesn't know that the Python side was released unless the close() method is called explicitly.

Rule of thumb. Open, use and close cursors in as short a span of code as you can manage.

  • 17
Reply Report
      • 1
    • I have been trying to find why my system won't release resources in a program, and this was exactly it. Such a small thing, but when doing thousands of DB queries, it gets big fast!
      • 1
    • Sounds like you should be using a with statement and an RAII-like class so you can't forget to close, even if exceptions are thrown.

Python's memory is managed by a garbage collector. In general, there shouldn't be a problem with memory leaking (definitely not for Python2.5 and above), unless you happen to be writing extension modules in C/C++. In that case, Valgrind (Blog post -http://bruynooghe.blogspot.com/2008/12/finding-memory-leaks-in-python.html) might be helpful. I found that this person - http://mg.pov.lt/blog/hunting-python-memleaks has used PDB and matplotlib to trace a memory leak. I hope this helps, I have no experience fixing Python memory leaks.

  • 1
Reply Report
      • 1
    • In a complex program, sometimes you'll keep a reference to an object without realising it. This makes the garbage collector unable to reclaim the memory. The way the question that Sebastjan linked to is better; what I really want is to see where my memory is being used.

Trending Tags