Merhaba arkadaşlar
Bir süredir python ile ilgileniyorum fakat yazdığım kodlar en fazla %10-15 arası işlemci kullanıyor.
Ben daha fazla işlemci kullanım daha hızlı işlemler yapmak istiyorum nasıl yaparım acaba?
Python ile daha fazla işlemci kullanma nasıl yaparım
8
●204
- 06-09-2022, 11:43:21Nasıl yapabilirim peki acaba orada da fazla kaynak tüketmiyor.arenpi adlı üyeden alıntı: mesajı görüntüle
- 06-09-2022, 13:20:01Hocam yazılımcılar normalde daha az işlemci kullanarak daha fazla işlem yapmaya çalışıyorlar siz tam tersini istiyorsunuz garip değil mi ? multiprocessing ,Multi threading inceleyin farklı çekirdekleri kullanarak aynı anda daha fazla işlem yapmayı amaçlıyorsanız. Tek çekirdek üzerinde paralel işlem çalıştırmak için threading kütüphanesine göz atın
- 06-09-2022, 13:22:32Kullanacağım sunucu da sadece bu çalışacak ve ben tüm çekirdekleri tek işlem için çalıştırmak istiyorum.msn560 adlı üyeden alıntı: mesajı görüntüle
Çünkü geniş bir ses işleme işlemi yapıyorum. İşlediğim dosya boyutları birer saatlik ve bir saatlik dosyayı 2 saate işliyor neredeyse
ram ve işlemci de %15 i geçmiyor.
Ben gerekirse %70-80 leri kullansın her ikisinde de ama işlemimi hızlı yapsın istiyorum. - 06-09-2022, 13:35:28Yeni olduğum için hocam tam anlayamadım.msn560 adlı üyeden alıntı: mesajı görüntüle
Kodum bu şekilde.
import os, sys, timeit, datetime from pydub import AudioSegment from pydub.silence import split_on_silence print("Program Başlama: ") print(datetime.datetime.now()) #SABİTLER start = timeit.default_timer() mp3ismi = "20220509120001" #SABİTLER #FONKSİYONLAR if getattr(sys, 'frozen', False): dosyaYolu = os.path.dirname(sys.executable) elif __file__: dosyaYolu = os.path.dirname(__file__) #FONKSİYONLAR #KLASÖR OLUŞTURMA if os.path.exists(os.path.join(dosyaYolu,mp3ismi))==False: os.mkdir(os.path.join(dosyaYolu,mp3ismi)) #KLASÖR OLUŞTURMA #DOSYA YOLU BELİRLEME kaydedilecekKlasor = os.path.join(dosyaYolu,mp3ismi) mp3Dosyasi = os.path.join(dosyaYolu, mp3ismi+".mp3") #DOSYA YOLU BELİRLEME #SES İŞLEMİ sound = AudioSegment.from_mp3(mp3Dosyasi) chunks = split_on_silence(sound, min_silence_len=5000, silence_thresh=-45, keep_silence=1000, seek_step=1) for i, chunk in enumerate(chunks): chunk.export(os.path.join(kaydedilecekKlasor,"cikti{0}.mp3").format(i), format="mp3") #SES İŞLEMİ stop = timeit.default_timer() print('Time: ', (stop - start) / 60) print("Program Bitiş: ") print(datetime.datetime.now())Ben "#SES İŞLEMİ" diye belirttiğim alanı nasıl daha hızlı çalıştırabilirim? Ya da çalıştırabilir miyim ? - 06-09-2022, 14:05:23Hocam şuanda mobilim size kod anlamında yardımcı olamam fakat anladığım kadarıyla ses dosyasını içindeki sessiz kısımlara göre parçalıyorsunuz. Aklıma gelen ilk yöntem önce ses dosyasını belirli bi saniyeden 2 ye parçalayıp sonra fonksiyon içine alarak dosya isimlerini multiprocessing Target ile fonksiyona göndermek ve başlatmak gerekiyor yada benzer bulduğum örnek: https://stackoverflow.com/questions/...-a-loop-python
- 06-09-2022, 14:32:22Sorunu çözdüm hocam ben split_on_silence fonksiyonunda bir hata yapıyormuşum. seek_step methodunu 1ms tuttuğum için işlem uzun sürüyormuş onu 10000ms yaptım işlem süresi 1 dakikaya düştü bu da bana yeterli bir süre.msn560 adlı üyeden alıntı: mesajı görüntüle
İlginiz için teşekkürler yine de
ram ve işlemci de %15 i geçmiyor.