Code SizeAs of June 23 2016, code size overhead for official Chrome is about 5% for calls and 7.5% for calls and casts. The following is the binary size of official Chrome built in various configurations:
PerformanceMeasured performance overhead for various benchmark suites in the CFI for virtual calls only configuration:
ReproducingThe above figures were derived from official builds of r401651 of Chromium by following these instructions.
#!/bin/bash for i in smoothness.top_25_smooth blink_perf.layout blink_perf.svg blink_perf.css blink_perf.dom blink_perf.paint blink_perf.canvas blink_perf.events blink_perf.parser blink_perf.bindings blink_perf.mutation blink_perf.animation blink_perf.shadow_dom blink_perf.interactive blink_perf.pywebsocket blink_perf.xml_http_request blink_perf.mutation.reference blink_perf.interactive.reference speedometer dromaeo.domcoreattr dromaeo.domcorequery dromaeo.domcoremodify dromaeo.cssqueryjquery dromaeo.jslibattrjquery dromaeo.domcoretraverse dromaeo.jslibeventjquery dromaeo.jslibstylejquery dromaeo.jslibmodifyjquery dromaeo.jslibattrprototype dromaeo.jslibeventprototype dromaeo.jslibstyleprototype dromaeo.jslibtraversejquery dromaeo.jslibmodifyprototype dromaeo.jslibtraverseprototype browsermark octane ; do xvfb-run -s "-screen 0 1024x768x24" ./tools/perf/run_benchmark --browser=exact --browser-executable=out_gn/ra_official/chrome --results-label=lto --pageset-repeat=50 $i xvfb-run -s "-screen 0 1024x768x24" ./tools/perf/run_benchmark --browser=exact --browser-executable=out_gn/ra_official_cfi_callonly/chrome --results-label=ltocficall --pageset-repeat=50 $i xvfb-run -s "-screen 0 1024x768x24" ./tools/perf/run_benchmark --browser=exact --browser-executable=out_gn/ra_official_cfi/chrome --results-label=ltocfi --pageset-repeat=50 $i mv tools/perf/results.html bm-devirt6/$i.html done |