Konuyu Oyla:
  • Toplam: 0 Oy - Ortalama: 0
  • 1
  • 2
  • 3
  • 4
  • 5
[YENİ] Python Pyqt5 memory leak sorunu
#1
arayüzlü bir proje yaptım 1. sayfafdan 2. sayfaya geçince kullanılan ram miktarı artıyor 2. sayfadan 1. sayfaya geri dönünce gene ram kullanımı artıyor sayfalar arasında ne kadar geçiş yaparsam ram miktarı katlanarak artmaya devam ediyor neyden kaynaklı olabilir , teşekkürler
Ara
Cevapla
#2
Eğer pencereler kapansa bile sonlanmayan bir thread varsa yani her pencere açılması bir thread oluşturuyorsa olabilir. Pencere arayüzü kapansa bile ana işlevini kapatmayacak bir işlem vs gibi şeyler olabilir, yani göden bir şeyi kaçırıyor olabilirsiniz. Veya pyqt5 ile ilgili bir durumdur, gerçi hiç denk gelmedim ama kodlarınızı bilmeden isabetli bir yorum yapmak mümkün değil.

Ayrıca merak ettiğim bir diğer konu, diğer mesajlarınızdan anladığım kadarıyla C# da biliyorsunuz, neden C# ile yazmıyorsunuz? Neticede microsoft visual studio belki de piyasadaki en kullanışlı IDE, masaüstü geliştirme ortamı bileşenleri çok daha iyi. Gerçi bunlar yine de python'un kolaylığıyla ve pratikliğiyle boy ölçüşemeyebilir eğer tabi kriter buysa Smile
Cevapla
#3
python daha yenilikçi ve önü açık bir dil olduğunu ve projeminde sürekliliği için python tercih ettim bir diğer nedeni ise projemin bir benzer versiyonu çok eskiden c# ile yapılmış ve ben şimdi c# ile yaparsam sanıcaklarki copy paste yaptım ve bu hoş olmuycak python a karşı algıları yıkmamda lazım bir çok nedeni var diyebilirim hocam kodlarım aşağıda mantık hatasımı var yoksa kullandığım methodlarmı yanlış yardımcı olurmusunuz
Ara
Cevapla
#4
Mesela sizinkine göre karşılaştırma yaparsam normalde UI_angarapage sınıfını ben ayrı olarak kullanırdım (bir nevi abstract gibi), bu doğrultuda main scriptimin içine import ederek 2. bir sınıf oluşturarak onun içinde inherit ederdim. Daha sonra workshopac() metodunu UI_angarapage içinde değil main script içinde kullanmam gerektiği zaman çağırırdım, yeniac metodunu da öyle main içinde kullanırdım. Tabi şimdi bunları örneklemek lazım.

Bir de siz UI_workshop 'u UI_angarapage içinde çağırıyosunuz falan yani her şey çok iç içe geçmiş gözüküyor. Ve de 2. pencereler dialog penceresi olmalı, siz yeni pencereleri QMainWindow() olarak tanımlamışsınız, QDialog() kullanmalısınız.


Kabaca bir örnek tasarladım, siz zaten anlarsınız

main.py
from PyQt5 import QtWidgets

from PyQt5 import QtWidgets
from mainUI import Ui_MainWindow
from angaraPage import UI_angarapage


class Window(QtWidgets.QMainWindow):

    def __init__(self):
        super(Window, self).__init__()
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
        ....
        ....

    # veya bu script içinde başka bir class içinde de olabilir
    def yeniac(self):
        dialog = angaraPage()
        dialog.exec_()
        dialog.show()


class angaraPage(QtWidgets.QDialog):

    def __init__(self):
        super(angaraPage, self).__init__()
        self.ui = UI_angarapage()
        self.ui.setupUi(self)
....
....

mainUI.py
from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_MainWindow(object):
   def setupUi(self, MainWindow):
       MainWindow.setObjectName("MainWindow")
       MainWindow.resize(1500, 900)
....
....


angarapage.py
from PyQt5 import QtCore, QtGui, QtWidgets


class UI_angarapage(object):
   def setupUi(self, Dialog):
       Dialog.setObjectName("angarapage")
       Dialog.resize(1500, 900)
....
....

şeklinde kendimce örneklendirmeye çalıştım umarım faydalı olur.
Cevapla

{lang: 'en'}


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  15gb .myd uzantılı dosya python ile okutma perry 1 614 27-11-2022, Saat: 17:59
Son Yorum: perry
Question Python Dili Soru & Cevap gecemor 1,493 1,018,695 08-11-2022, Saat: 11:18
Son Yorum: Antonyobanderas
  GÜNCEL Python request , c# request e göre çok yavaş ne yapabilirim perry 12 2,181 28-09-2022, Saat: 20:27
Son Yorum: krast
  Pyinstaller exe virüs sorunu ahgonlum 4 2,075 16-09-2022, Saat: 17:36
Son Yorum: ahgonlum
  YENİ PYTHON ads approval CaglarDevv 2 1,024 04-07-2022, Saat: 01:23
Son Yorum: CaglarDevv

Hızlı Menü:


Konuyu Okuyanlar: 1 Ziyaretçi
Change Theme