[pypy-issue] Issue #1975: Pydub module very slow compared to CPython implementation (pypy/pypy)

cryzed issues-reply at bitbucket.org
Tue Feb 10 18:27:20 CET 2015

New issue 1975: Pydub module very slow compared to CPython implementation


The Pydub module is 5~ times (PyPy 2) and up to 17~ times (PyPy 3) slower compared to the CPython 3 implementation when using the Pydub module. Absolute values were 3.5~ seconds for CPython, 18~ seconds for PyPy 2 and 58~ seconds for PyPy 3. Here is a sample test case:


import sys
import time

import pydub


def main(duration):
    segments = tuple(pydub.AudioSegment.from_file(path) for path in PATHS)

    # Create a silent audio segment to easily overlay the other segments
    composition = pydub.AudioSegment.silent(duration)

    for segment in segments:
        position = 0
        length = len(segment)

        while position < duration:
            composition = composition.overlay(segment, position)
            position += length

    composition.export('output.wav', format='wav')

if __name__ == '__main__':
    start = time.time()
    print(time.time() - start)

I use 20 short (~20 seconds) *.ogg audio files for the PATHS and pass in a duration of 60000 milliseconds. Using this script and CPython 3 and PyPy 3 the values were 6~ seconds for CPython 3 and 166 seconds for PyPy 3.

More information about the pypy-issue mailing list