Join us and get access to thousands of tutorials and a community of expert Pythonistas.

Unlock This Lesson

This lesson is for members only. Join us and get access to thousands of tutorials and a community of expert Pythonistas.

Unlock This Lesson

Hint: You can adjust the default video playback speed in your account settings.
Hint: You can set your subtitle preferences in your account settings.
Sorry! Looks like there’s an issue with video playback 🙁 This might be due to a temporary outage or because of a configuration issue with your browser. Please refer to our video player troubleshooting guide for assistance.

Considering Performance

In this lesson, you’ll compare the performance of OrderedDict vs dict. To learn more about measuring performance, check out Python Timer Functions: Three Ways to Monitor Your Code.

00:01 Considering Performance. Performance is an important subject in programming. Knowing how fast an algorithm runs or how much memory it consumes are common concerns.

00:13 OrderedDict was initially coded in Python and then written in C to maximize efficiency in methods and operations. These two implementations are currently available in the standard library.

00:24 However, the Python implementation serves as an alternative if the C implementation isn’t available for some reason. Both implementations of OrderedDict involve using a doubly linked list to capture the order of items. Despite having linear time for some operations, the linked list implementation in OrderedDict is highly optimized to preserve the fast times of the corresponding dictionary methods. That said, the operations in an ordered dictionary are O(1) but with a greater constant factor compared to regular dictionaries.

00:56 In general, OrderedDict has lower performance than regular dictionaries. On-screen is an example that measures the execution time of several operations in both dictionary classes.

01:21 Here, you compute the average time that it takes to run several common operations on a given dictionary. The for loop uses time.perf_counter() to measure the execution time of the set of operations.

01:58 The function returns the average time, in nanoseconds, that it takes to run these operations.

02:37 Here, you can see the script being run from the command line. As you can see, operations on dict objects are faster than operations on OrderedDict objects.

02:53 If you’re interested in knowing other ways to time your code, then you can check out Python Timer Functions: Three Ways to Monitor Your Code. In terms of memory consumption, OrderedDict instances have to pay a storage cost because of their ordered list of keys.

03:12 On-screen is a script that gives you an idea of this memory cost.

03:23 In this example, you use sys.getsizeof() to measure the memory footprint in bytes of two dictionary objects.

04:01 In the output, you can see that the regular dictionary occupies less memory than the OrderedDict counterpart. In the next section of the course, you’ll take a look at how to select the right dictionary for the job.

Become a Member to join the conversation.