Browse Source

Add targets to simplify building PHP with FDO (Feedback Directed Optimisation)

PHP should be built with the folowing steps:

make clean
make -j4 prof-gen
; now php should be trained with some scripts
; for example `sapi/cgi/php -T 1000 /var/www/http/wordpress/index.php > /dev/null`
make prof-clean
make -j4 prof-use

The "properly" trained build may give up to 10% real performance boost!
"Improprly" trained PHP might be even slower.
pull/1306/head
Dmitry Stogov 11 years ago
parent
commit
7dac4d449f
  1. 15
      Makefile.global
  2. 4
      configure.in

15
Makefile.global

@ -130,5 +130,18 @@ distclean: clean
fi
$(EGREP) define'.*include/php' $(top_srcdir)/configure | $(SED) 's/.*>//'|xargs rm -f
.PHONY: all clean install distclean test
prof-gen:
CCACHE_DISABLE=1 $(MAKE) PROF_FLAGS=-fprofile-generate all
prof-clean:
find . -name \*.lo -o -name \*.o | xargs rm -f
find . -name \*.la -o -name \*.a | xargs rm -f
find . -name \*.so | xargs rm -f
rm -f libphp$(PHP_MAJOR_VERSION).la $(SAPI_CLI_PATH) $(SAPI_CGI_PATH) $(SAPI_MILTER_PATH) $(SAPI_LITESPEED_PATH) $(SAPI_FPM_PATH) $(OVERALL_TARGET) modules/* libs/*
prof-use:
CCACHE_DISABLE=1 $(MAKE) PROF_FLAGS=-fprofile-use all
.PHONY: all clean install distclean test prof-gen prof-clean prof-use
.NOEXPORT:

4
configure.in

@ -1435,10 +1435,10 @@ CC=$old_CC
PHP_CONFIGURE_PART(Generating files)
CXXFLAGS_CLEAN=$CXXFLAGS
CFLAGS_CLEAN=$CFLAGS
CFLAGS_CLEAN="$CFLAGS \$(PROF_FLAGS)"
CFLAGS="\$(CFLAGS_CLEAN) $standard_libtool_flag"
INLINE_CFLAGS="$INLINE_CFLAGS $standard_libtool_flag"
CXXFLAGS="$CXXFLAGS $standard_libtool_flag"
CXXFLAGS="$CXXFLAGS $standard_libtool_flag \$(PROF_FLAGS)"
if test "$PHP_PHAR" != "no" && test "$PHP_CLI" != "no"; then
pharcmd=pharcmd

Loading…
Cancel
Save