 b378c2ff1e
			
		
	
	b378c2ff1e
	
	
	
		
			
			Build a typed sort function for the mergesort performance test tool using DEFINE_LIST_SORT instead of calling llist_mergesort(). This gets rid of the next pointer accessor functions and improves the performance at the cost of a slightly higher object text size. Before: 0071.12: llist_mergesort() unsorted 0.24(0.22+0.01) 0071.14: llist_mergesort() sorted 0.12(0.10+0.01) 0071.16: llist_mergesort() reversed 0.12(0.10+0.01) __TEXT __DATA __OBJC others dec hex 6407 276 0 24701 31384 7a98 t/helper/test-mergesort.o With this patch: 0071.12: DEFINE_LIST_SORT unsorted 0.22(0.21+0.01) 0071.14: DEFINE_LIST_SORT sorted 0.11(0.10+0.01) 0071.16: DEFINE_LIST_SORT reversed 0.11(0.10+0.01) __TEXT __DATA __OBJC others dec hex 6615 276 0 25832 32723 7fd3 t/helper/test-mergesort.o Signed-off-by: René Scharfe <l.s.r@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
		
			
				
	
	
		
			53 lines
		
	
	
		
			910 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			910 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/sh
 | |
| 
 | |
| test_description='Basic sort performance tests'
 | |
| . ./perf-lib.sh
 | |
| 
 | |
| test_perf_default_repo
 | |
| 
 | |
| test_expect_success 'setup' '
 | |
| 	git ls-files --stage "*.[ch]" "*.sh" |
 | |
| 	cut -f2 -d" " |
 | |
| 	git cat-file --batch >unsorted
 | |
| '
 | |
| 
 | |
| test_perf 'sort(1) unsorted' '
 | |
| 	sort <unsorted >sorted
 | |
| '
 | |
| 
 | |
| test_expect_success 'reverse' '
 | |
| 	sort -r <unsorted >reversed
 | |
| '
 | |
| 
 | |
| for file in sorted reversed
 | |
| do
 | |
| 	test_perf "sort(1) $file" "
 | |
| 		sort <$file >actual
 | |
| 	"
 | |
| done
 | |
| 
 | |
| for file in unsorted sorted reversed
 | |
| do
 | |
| 
 | |
| 	test_perf "string_list_sort() $file" "
 | |
| 		test-tool string-list sort <$file >actual
 | |
| 	"
 | |
| 
 | |
| 	test_expect_success "string_list_sort() $file sorts like sort(1)" "
 | |
| 		test_cmp_bin sorted actual
 | |
| 	"
 | |
| done
 | |
| 
 | |
| for file in unsorted sorted reversed
 | |
| do
 | |
| 	test_perf "DEFINE_LIST_SORT $file" "
 | |
| 		test-tool mergesort sort <$file >actual
 | |
| 	"
 | |
| 
 | |
| 	test_expect_success "DEFINE_LIST_SORT $file sorts like sort(1)" "
 | |
| 		test_cmp_bin sorted actual
 | |
| 	"
 | |
| done
 | |
| 
 | |
| test_done
 |