Python & tkinter Free memory … Strange Behaviour
I have one code used to collect and analyze some information from a database through ODBC
connection, the code is as bellow:
conn = pyodbc.connect(connection_name)
cur = conn.cursor()
rows = cur.execute(qquery)
row = cur.fetchone()
while row is not None:
....Do whatever required....
cur.close()
del rows
del cur
del row
conn.close()
del conn
While monitoring the memory usage, and as the query is collecting huge data, I can see that the memory usage is going up.
After showing the information, deleting the variable and closing the connection doesn't free up the memory.
Instead, only when minimizing the tkinter
window and restoring it back the memory is free and restored to normal.
Any idea what's going wrong or how can I fix this issue?
I am using Python 3.4 32bit
python tkinter pyodbc
add a comment |
I have one code used to collect and analyze some information from a database through ODBC
connection, the code is as bellow:
conn = pyodbc.connect(connection_name)
cur = conn.cursor()
rows = cur.execute(qquery)
row = cur.fetchone()
while row is not None:
....Do whatever required....
cur.close()
del rows
del cur
del row
conn.close()
del conn
While monitoring the memory usage, and as the query is collecting huge data, I can see that the memory usage is going up.
After showing the information, deleting the variable and closing the connection doesn't free up the memory.
Instead, only when minimizing the tkinter
window and restoring it back the memory is free and restored to normal.
Any idea what's going wrong or how can I fix this issue?
I am using Python 3.4 32bit
python tkinter pyodbc
Garbage Collection is handled automatically but that does not mean that it will free up memory right away. You can try to force collections with thegc
library but it should not affect performance and will release memory as it is needed.
– Mike - SMT
Nov 21 '18 at 15:32
add a comment |
I have one code used to collect and analyze some information from a database through ODBC
connection, the code is as bellow:
conn = pyodbc.connect(connection_name)
cur = conn.cursor()
rows = cur.execute(qquery)
row = cur.fetchone()
while row is not None:
....Do whatever required....
cur.close()
del rows
del cur
del row
conn.close()
del conn
While monitoring the memory usage, and as the query is collecting huge data, I can see that the memory usage is going up.
After showing the information, deleting the variable and closing the connection doesn't free up the memory.
Instead, only when minimizing the tkinter
window and restoring it back the memory is free and restored to normal.
Any idea what's going wrong or how can I fix this issue?
I am using Python 3.4 32bit
python tkinter pyodbc
I have one code used to collect and analyze some information from a database through ODBC
connection, the code is as bellow:
conn = pyodbc.connect(connection_name)
cur = conn.cursor()
rows = cur.execute(qquery)
row = cur.fetchone()
while row is not None:
....Do whatever required....
cur.close()
del rows
del cur
del row
conn.close()
del conn
While monitoring the memory usage, and as the query is collecting huge data, I can see that the memory usage is going up.
After showing the information, deleting the variable and closing the connection doesn't free up the memory.
Instead, only when minimizing the tkinter
window and restoring it back the memory is free and restored to normal.
Any idea what's going wrong or how can I fix this issue?
I am using Python 3.4 32bit
python tkinter pyodbc
python tkinter pyodbc
edited Nov 21 '18 at 12:00
Tico
2,08722432
2,08722432
asked Nov 21 '18 at 11:03
Mohamed AlmazMohamed Almaz
11
11
Garbage Collection is handled automatically but that does not mean that it will free up memory right away. You can try to force collections with thegc
library but it should not affect performance and will release memory as it is needed.
– Mike - SMT
Nov 21 '18 at 15:32
add a comment |
Garbage Collection is handled automatically but that does not mean that it will free up memory right away. You can try to force collections with thegc
library but it should not affect performance and will release memory as it is needed.
– Mike - SMT
Nov 21 '18 at 15:32
Garbage Collection is handled automatically but that does not mean that it will free up memory right away. You can try to force collections with the
gc
library but it should not affect performance and will release memory as it is needed.– Mike - SMT
Nov 21 '18 at 15:32
Garbage Collection is handled automatically but that does not mean that it will free up memory right away. You can try to force collections with the
gc
library but it should not affect performance and will release memory as it is needed.– Mike - SMT
Nov 21 '18 at 15:32
add a comment |
0
active
oldest
votes
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53410731%2fpython-tkinter-free-memory-strange-behaviour%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53410731%2fpython-tkinter-free-memory-strange-behaviour%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Garbage Collection is handled automatically but that does not mean that it will free up memory right away. You can try to force collections with the
gc
library but it should not affect performance and will release memory as it is needed.– Mike - SMT
Nov 21 '18 at 15:32