Kent Johnson wrote:

>Orri Ganel wrote:
>  
>
>>Hello all,
>>
>>I've been working on a program for a week or two now that will convert 
>>all the wav files in a folder to mp3s, filling the id3 tags with the 
>>correct information as collected from gracenote.com.  This part works 
>>fine.  However, the actual conversion to mp3 takes between 30 and 50 
>>seconds per song, so it's usually about 10 minutes per album.  With this 
>>in mind, I thought, why not try to use threads so all the conversions 
>>happen simultaneously?  That way, the whole album will take between 30 
>>and 50 seconds.  Unfortunately, I can't seem to get a working threaded 
>>version that significantly reduces the time involved . . . The 
>>    
>>
>
>The only part you are doing in a thread is the actual conversion. This is 
>likely to be CPU-intensive so running it in multiple threads may not help - 
>you still have only the one CPU to run on. To the extent that you can overlap 
>disk I/O in one conversion with processing in another you may get a win; on 
>the other hand you could just as well have contention for the disk as you try 
>to read and write a bunch of files at the same time.
>
>The fetch from gracenote.com seems like a better candidate for threading 
>because there is some latency...but the total time is still probably small 
>compared to the conversion time.
>
>Maybe if you have multiple CPUs you can get a speedup by using as many threads 
>as CPUs...I'm not sure how os.system() behaves in this case. You may have to 
>explicitly fork to get a new process.
>
>Hmm...come to think of it, os.system() may block other threads, I don't 
>know...you could try subprocess.Popen() instead.
>
>Kent
>
Thanks for the tip.  Unfortunately, I only have 1 CPU and not the 
slightest idea how to code for multiple CPUs in any case.  Looks like 
I'll just hafta deal with a 10-minute time per album.

-- 
Email: singingxduck AT gmail DOT com
AIM: singingxduck
Programming Python for the fun of it.

_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to