From 277842eff12eba1ceeeba1cee93db3ec99d5c95a Mon Sep 17 00:00:00 2001 From: Raymond Hettinger Date: Sun, 11 May 2014 01:55:46 -0700 Subject: Issue #21424: Optimize heaqp.nlargest() to make fewer tuple comparisons. Consolidates the logic for nlargest() into a single function so that decoration tuples (elem,order) or (key, order, elem) only need to be formed when a new element is added to the heap. Formerly, a tuple was created for every element regardless of whether it was added to the heap. The change reduces the number of tuples created, the number of ordering integers created, and total number of tuple comparisons. --- Lib/test/test_heapq.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'Lib/test/test_heapq.py') diff --git a/Lib/test/test_heapq.py b/Lib/test/test_heapq.py index b5a2fd803a..1735a19ca8 100644 --- a/Lib/test/test_heapq.py +++ b/Lib/test/test_heapq.py @@ -13,7 +13,7 @@ c_heapq = support.import_fresh_module('heapq', fresh=['_heapq']) # _heapq.nlargest/nsmallest are saved in heapq._nlargest/_smallest when # _heapq is imported, so check them there func_names = ['heapify', 'heappop', 'heappush', 'heappushpop', - 'heapreplace', '_nlargest', '_nsmallest'] + 'heapreplace', '_nsmallest'] class TestModules(TestCase): def test_py_functions(self): -- cgit v1.2.1