##// END OF EJS Templates
perf: call _generatechangelog() instead of group()...
perf: call _generatechangelog() instead of group() Now that we have a separate function for generating just the changelog bits, the perf command should call it so it gets more accurate behavior. This changes the results of this command on my hg repo significantly: ! wall 1.390502 comb 1.390000 user 1.370000 sys 0.020000 (best of 8) ! wall 1.768750 comb 1.760000 user 1.760000 sys 0.000000 (best of 6) Profiling seems to reveal that ~20% of execution time is spent in progress bar accounting and printing! If we run with progress.disable=true: ! wall 1.639134 comb 1.650000 user 1.630000 sys 0.020000 (best of 7) A nice speedup. But profiling still shows a good chunk of time being spent in progress bar accounting code. The reason is that the progress bar is conditionally enabled via an argument to cgpacker.group(). The previous code in perf.py calling into group() did not enable the progress bar but _generatechangelog() always does. I think it is important for the perf* commands to capture real-world use cases. And this code always runs with an active progress bar. So the regression is acceptable. That being said, terminal printing performance can vary substantially. I don't think perf* commands should test terminal printing unless explicitly desired. So I've disabled progress bar printing in this command. Differential Revision: https://phab.mercurial-scm.org/D4134

File last commit:

r38264:46dcb9f1 default
r39013:a1f69477 default
Show More
Makefile
81 lines | 2.6 KiB | text/x-makefile | MakefileLexer
Yuya Nishihara
fuzz: expand variables by make...
r38232 CC = clang
CXX = clang++
Augie Fackler
fuzz: new fuzzer for the mpatch code...
r38264 all: bdiff mpatch xdiff
Yuya Nishihara
fuzz: fix the default make target
r38233
Augie Fackler
fuzz: extract some common utilities and use modern C++ idioms...
r38191 fuzzutil.o: fuzzutil.cc fuzzutil.h
Yuya Nishihara
fuzz: expand variables by make...
r38232 $(CXX) $(CXXFLAGS) -g -O1 -fsanitize=fuzzer-no-link,address \
Augie Fackler
fuzz: extract some common utilities and use modern C++ idioms...
r38191 -std=c++17 \
-I../../mercurial -c -o fuzzutil.o fuzzutil.cc
Augie Fackler
fuzzutil: make it possible to use absl when C++17 isn't supported...
r38192 fuzzutil-oss-fuzz.o: fuzzutil.cc fuzzutil.h
Yuya Nishihara
fuzz: expand variables by make...
r38232 $(CXX) $(CXXFLAGS) -std=c++17 \
Augie Fackler
fuzzutil: make it possible to use absl when C++17 isn't supported...
r38192 -I../../mercurial -c -o fuzzutil-oss-fuzz.o fuzzutil.cc
Augie Fackler
contrib: add some basic scaffolding for some fuzz test targets...
r35688 bdiff.o: ../../mercurial/bdiff.c
Yuya Nishihara
fuzz: expand variables by make...
r38232 $(CC) $(CFLAGS) -fsanitize=fuzzer-no-link,address -c -o bdiff.o \
Augie Fackler
contrib: add some basic scaffolding for some fuzz test targets...
r35688 ../../mercurial/bdiff.c
Augie Fackler
fuzz: extract some common utilities and use modern C++ idioms...
r38191 bdiff: bdiff.cc bdiff.o fuzzutil.o
Yuya Nishihara
fuzz: expand variables by make...
r38232 $(CXX) $(CXXFLAGS) -DHG_FUZZER_INCLUDE_MAIN=1 -g -O1 -fsanitize=fuzzer-no-link,address \
Augie Fackler
fuzz: extract some common utilities and use modern C++ idioms...
r38191 -std=c++17 \
-I../../mercurial bdiff.cc bdiff.o fuzzutil.o -o bdiff
Augie Fackler
contrib: add some basic scaffolding for some fuzz test targets...
r35688
bdiff-oss-fuzz.o: ../../mercurial/bdiff.c
Yuya Nishihara
fuzz: expand variables by make...
r38232 $(CC) $(CFLAGS) -c -o bdiff-oss-fuzz.o ../../mercurial/bdiff.c
Augie Fackler
contrib: add some basic scaffolding for some fuzz test targets...
r35688
Augie Fackler
fuzzutil: make it possible to use absl when C++17 isn't supported...
r38192 bdiff_fuzzer: bdiff.cc bdiff-oss-fuzz.o fuzzutil-oss-fuzz.o
Yuya Nishihara
fuzz: expand variables by make...
r38232 $(CXX) $(CXXFLAGS) -std=c++17 -I../../mercurial bdiff.cc \
Augie Fackler
fuzzutil: make it possible to use absl when C++17 isn't supported...
r38192 bdiff-oss-fuzz.o fuzzutil-oss-fuzz.o -lFuzzingEngine -o \
$$OUT/bdiff_fuzzer
Augie Fackler
contrib: add some basic scaffolding for some fuzz test targets...
r35688
Augie Fackler
fuzz: new fuzzer for the mpatch code...
r38264 mpatch.o: ../../mercurial/mpatch.c
$(CC) -g -O1 -fsanitize=fuzzer-no-link,address -c -o mpatch.o \
../../mercurial/mpatch.c
mpatch: CXXFLAGS += -std=c++17
mpatch: mpatch.cc mpatch.o fuzzutil.o
$(CXX) $(CXXFLAGS) -DHG_FUZZER_INCLUDE_MAIN=1 -g -O1 -fsanitize=fuzzer-no-link,address \
-I../../mercurial mpatch.cc mpatch.o fuzzutil.o -o mpatch
mpatch-oss-fuzz.o: ../../mercurial/mpatch.c
$(CC) $(CFLAGS) -c -o mpatch-oss-fuzz.o ../../mercurial/mpatch.c
mpatch_fuzzer: mpatch.cc mpatch-oss-fuzz.o fuzzutil-oss-fuzz.o
$(CXX) $(CXXFLAGS) -std=c++17 -I../../mercurial mpatch.cc \
mpatch-oss-fuzz.o fuzzutil-oss-fuzz.o -lFuzzingEngine -o \
$$OUT/mpatch_fuzzer
mpatch_corpus.zip:
python mpatch_corpus.py $$OUT/mpatch_fuzzer_seed_corpus.zip
Augie Fackler
fuzz: add a fuzzer for xdiff...
r36697 x%.o: ../../mercurial/thirdparty/xdiff/x%.c ../../mercurial/thirdparty/xdiff/*.h
Yuya Nishihara
fuzz: expand variables by make...
r38232 $(CC) -g -O1 -fsanitize=fuzzer-no-link,address -c \
Augie Fackler
fuzz: add a fuzzer for xdiff...
r36697 -o $@ \
$<
Yuya Nishihara
fuzz: compile xdiff.cc with -std=c++17...
r38235 xdiff: CXXFLAGS += -std=c++17
Augie Fackler
fuzz: extract some common utilities and use modern C++ idioms...
r38191 xdiff: xdiff.cc xdiffi.o xprepare.o xutils.o fuzzutil.o
Yuya Nishihara
fuzz: expand variables by make...
r38232 $(CXX) $(CXXFLAGS) -DHG_FUZZER_INCLUDE_MAIN=1 -g -O1 -fsanitize=fuzzer-no-link,address \
Augie Fackler
fuzz: add a fuzzer for xdiff...
r36697 -I../../mercurial xdiff.cc \
Augie Fackler
fuzz: extract some common utilities and use modern C++ idioms...
r38191 xdiffi.o xprepare.o xutils.o fuzzutil.o -o xdiff
Augie Fackler
contrib: add some basic scaffolding for some fuzz test targets...
r35688
Augie Fackler
fuzz: add a fuzzer for xdiff...
r36697 fuzz-x%.o: ../../mercurial/thirdparty/xdiff/x%.c ../../mercurial/thirdparty/xdiff/*.h
Yuya Nishihara
fuzz: expand variables by make...
r38232 $(CC) $(CFLAGS) -c \
Augie Fackler
fuzz: add a fuzzer for xdiff...
r36697 -o $@ \
$<
Augie Fackler
fuzzutil: make it possible to use absl when C++17 isn't supported...
r38192 xdiff_fuzzer: xdiff.cc fuzz-xdiffi.o fuzz-xprepare.o fuzz-xutils.o fuzzutil-oss-fuzz.o
Yuya Nishihara
fuzz: expand variables by make...
r38232 $(CXX) $(CXXFLAGS) -std=c++17 -I../../mercurial xdiff.cc \
Augie Fackler
fuzzutil: make it possible to use absl when C++17 isn't supported...
r38192 fuzz-xdiffi.o fuzz-xprepare.o fuzz-xutils.o fuzzutil-oss-fuzz.o \
Augie Fackler
fuzz: add a fuzzer for xdiff...
r36697 -lFuzzingEngine -o $$OUT/xdiff_fuzzer
Augie Fackler
fuzz: add clean target...
r38193 clean:
Yuya Nishihara
fuzz: fix "make clean" to pass even if no binaries built yet
r38236 $(RM) *.o *_fuzzer \
Augie Fackler
fuzz: add clean target...
r38193 bdiff \
Augie Fackler
fuzz: new fuzzer for the mpatch code...
r38264 mpatch \
Augie Fackler
fuzz: add clean target...
r38193 xdiff
Augie Fackler
fuzz: new fuzzer for the mpatch code...
r38264 oss-fuzz: bdiff_fuzzer mpatch_fuzzer mpatch_corpus.zip xdiff_fuzzer
Augie Fackler
contrib: add some basic scaffolding for some fuzz test targets...
r35688
Augie Fackler
fuzz: add clean target...
r38193 .PHONY: all clean oss-fuzz