Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Advertise on LowEndTalk.com
PHP 7.4.0 officially released
New on LowEndTalk? Please read our 'Community Rules' by clicking on it in the right menu!

PHP 7.4.0 officially released

eva2000eva2000 Member
edited November 2019 in General

PHP 7.4.0 has been officially released now https://www.php.net/archive/2019.php#2019-11-28-1.

I did some PHP benchmarks for 7.4 vs 7.3 vs 7.2 vs 7.1 vs 7.0 with & without Profile Guided Optimizations on my Centmin Mod LEMP stack https://community.centminmod.com/threads/18741/.

Enjoy ^_^

* Centmin Mod Project (HTTP/2 support + ngx_pagespeed + Nginx Lua + Vhost Stats)
* Centmin Mod LEMP Stack Quick Install Guide

Comments

  • @eva2000 said:
    PHP 7.4.0 has been officially released now https://www.php.net/archive/2019.php#2019-11-28-1.

    I did some PHP benchmarks for 7.4 vs 7.3 vs 7.2 vs 7.1 vs 7.0 with & without Profile Guided Optimizations on my Centmin Mod LEMP stack https://community.centminmod.com/threads/18741/.

    Enjoy ^_^

    thanks @eva2000

  • Premium, lets upgrade from 7.3 to 7.4.

  • Meanwhile, PHP 7.1 gets EOL'd this month

  • @klikli said:
    Meanwhile, PHP 7.1 gets EOL'd this month

    Correction, you mean @eol 'd

    Thanked by 2SmallWeb Edmond
  • MikeAMikeA Member, Provider

    Thanks for always posting those benchmarks with newer releases.

    ExtraVM - AMD Ryzen VPS starting @ $3.50
    USA (TX, VA, FL), CA, FR, UK, SGP, AU

  • Interesting, thanks @eva2000!

    don't buy what you don't need: you'll save money and will end up able to grab a quality VPS when really needed.

  • so overall, every version is improving...

  • opcache preload is here!

  • Love your work as always @eva2000

    Any opinions expressed are my own, correct, and generally unpopular with others. All rights reserved - but some wrongs are still available.

  • So there's still visible speed-up. I wonder whether there are any known major incompatibilities with previous 7.*.

    Monitor your network assets with IPHost (contact me to obtain a discount code, or use IPHM-EOTY-19-15 while year 2019 lasts)
  • @Master_Bo said:
    So there's still visible speed-up. I wonder whether there are any known major incompatibilities with previous 7.*.

    I'm wondering this too

  • @Master_Bo said:
    So there's still visible speed-up. I wonder whether there are any known major incompatibilities with previous 7.*.

    Как всегда по принципу "эксперимент -> пиздец -> чтение документации" ;)

  • I havent noticed any (yet) going from 7.3 to 7.4

    grape

  • @corbpie said:
    I havent noticed any (yet) going from 7.3 to 7.4

    Well, unlike .net platform, php devs care about backward compatibility.

  • Which host now offers PHP 7.4 selektor?

    Deals and Reviews: LowEndBoxes Review | Avoid dodgy providers with The LEBRE Whitelist | Free hosting (with conditions): Evolution-Host, NanoKVM, FreeMach, ServedEZ | Follow latest deals on Twitter or Telegram

  • manlivomanlivo Member without signature

    7 years of php experience. I am looking for a remote job.

  • CConnerCConner Member, Provider

    Now we only need method overloading, being able to assign a non primitive default value to class variables and generic types

    GameDash, an AIO solution uniting billing, support & game server management platform.
    Visit our website or join our Discord to find out more.

  • Master_BoMaster_Bo Member
    edited November 2019

    @tsoft said:
    Как всегда по принципу "эксперимент -> [] -> чтение документации" ;)

    It depends. I read release notes every time, but still something breaks in more or less big apps.

    Monitor your network assets with IPHost (contact me to obtain a discount code, or use IPHM-EOTY-19-15 while year 2019 lasts)
  • So that's why some of my vps changed to 7.4 yesterday

  • SteveMCSteveMC Member
    edited November 2019

    seenu said: so overall, every version is improving...

    The next step will be PHP 8 which will be featuring JIT. Yet to see if it improves performances significantly on "everyday-web-app".

    Master_Bo said: I wonder whether there are any known major incompatibilities with previous 7.*

    https://www.php.net/manual/en/migration74.deprecated.php

    Good Night and Good Luck :sleeping:

  • @Master_Bo said:

    @tsoft said:
    Как всегда по принципу "эксперимент -> [] -> чтение документации" ;)

    It depends. I read release notes every time, but still something breaks in more or less big apps.

    Depends, if you have a shitload of dependencies, frameworks, libs.... even different version of these libs.
    You never know, where the shit will implode.

    Sometimes it even takes them years to upgrade.
    But if you run on vanilla, no issues.

  • @SteveMC said:

    Master_Bo said: I wonder whether there are any known major incompatibilities with previous 7.*

    https://www.php.net/manual/en/migration74.deprecated.php

    In real life, when something more complex than "Hello world" is in use, there might be changes outside of such lists - enough to break compatibility.

    So let's that check...

    Monitor your network assets with IPHost (contact me to obtain a discount code, or use IPHM-EOTY-19-15 while year 2019 lasts)
  • thanks @eva2000, PHP developer and all community for this great news...

    my LEMPer has already supports for PHP 7.4

    LEMPer is yet another LEMP stack installer (plus cli-based LEMP stack management tool).
    Start your LEMP stack on the reliable cloud VPS instance starting only from around $5/mo.

  • bjobjo Member
    edited November 2019

    And the first thing broke after upgrade :( :

    [pool cloud] failed to chown() the socket '/run/php-fpm/cloud-php-fpm.sock': Operation not permitted

  • Glad you folks like. Also added PHP 8.0 dev benchmarks along with PHP 8 JIT for previewing what 2021 has to bring for PHP https://community.centminmod.com/posts/79730/ :)

    * Centmin Mod Project (HTTP/2 support + ngx_pagespeed + Nginx Lua + Vhost Stats)
    * Centmin Mod LEMP Stack Quick Install Guide
  • PHP 8.0 looks like its killing it with performance improvements based on your benchmarks

  • How do you build PHP with PGO?

    Some times ago, I've been experimenting, but I am not sure if I am doing it right.

    After the ./configure (+options) I do:

    make prof-gen
    make install

    Let it run for a bit, then

    make prof-clean
    make prof-use
    make install

    Is that the right procedure?

    Good Night and Good Luck :sleeping:

  • eva2000eva2000 Member
    edited December 2019

    @theblackesthat said:
    PHP 8.0 looks like its killing it with performance improvements based on your benchmarks

    yup - PHP 8 will be to PHP 7 is to PHP 5.6 I suspect for PHP 8 JIT capable workloads :)

    SteveMC said: How do you build PHP with PGO?

    see https://software.intel.com/en-us/blogs/2015/10/09/pgo-let-it-go-php

    This uses a technique called Profile-Guided Optimization or PGO. The basic idea is as follows: When any program is compiled, the compiler uses some heuristics to determine the most likely path your program will take through the code, and optimizes the code using those assumptions.

    PGO lets you train the compiler to produce a more optimized result. It does this by first compiling the code with instrumentation, then run the instrumented code which creates a profile. The final step is to recompile the program, using the profile to fine-tune the optimizations.

    Amongst open source projects, very few use PGO. I know that Firefox builds by default with PGO, but I'm not sure of any others. We are introducing this with PHP and Python because it shows a measurable difference in complex customer workloads.

    where PHP PGO training is done just before make prof-clean and make prof-use steps

    For Centmin Mod 123.09beta01 and newer, users just have to enable PHP_PGO='y' in persistent config file /etc/centminmod/custom_config.inc prior to running centmin.sh menu opton 5 PHP upgrade/recompile shell based menu to automatically build any PHP 7+ version with Profile Guided Optimizations and automatic training. And to further advance PHP PGO training for specific PHP scripts, Centmin Mod allows you to set specific paths via variables like PHPPGO_INDEXPATH to PHP files to be trained by Centmin Mod PHP PGO routines https://community.centminmod.com/threads/update-inc-php_upgrade-inc-add-phppgo_indexpath-variable-support-in-123-09beta01.8972/

    Thanked by 1SteveMC
    * Centmin Mod Project (HTTP/2 support + ngx_pagespeed + Nginx Lua + Vhost Stats)
    * Centmin Mod LEMP Stack Quick Install Guide
  • Thank you @eva2000 , so it seems this is what I am doing. However, I thought that, during the training process, data would be written into files located in the source tree. But I see nothing. I'll try to dig it more.

    Good Night and Good Luck :sleeping:

  • Can we use centmin on Debian/Ubuntu?

  • Is there any major differences noticed 7.3 --> 7.4?

    Linux - RedHat|cPANEL CentOS,Ubuntu|Azure-VM/AWS-Ec2 Administrator,
    Assistance, Analysis and Diagnosis.| Skype: tuxandrew | [email protected]

  • eva2000eva2000 Member
    edited December 2019

    @SteveMC said:
    Thank you @eva2000 , so it seems this is what I am doing. However, I thought that, during the training process, data would be written into files located in the source tree. But I see nothing. I'll try to dig it more.

    .gcda created files by PHP binary will be removed on make clean so you probably wiping them before you get a chance to inspect them ???

    from PHP Makefile

    grep -C3 -in 'gcda' Makefile
    262-    fi
    263-
    264-clean:
    265:    find . -name \*.gcno -o -name \*.gcda | xargs rm -f
    266-    find . -name \*.lo -o -name \*.o | xargs rm -f
    267-    find . -name \*.la -o -name \*.a | xargs rm -f
    268-    find . -name \*.so | xargs rm -f
    

    haven't really checked during PHP PGO compiles for the files but I do know they get created when I also do Profile Guided Optimizations on other binaries like pigz multi-threaded gzip binary

    edit: ok just checked on PHP 7.4.0 PGO compile there was 607 .gcda files generated in PHP-FPM build directory

    pwd; find . -name '*.gcda' | wc -l
    /svr-setup/php-7.4.0/fpm-build
    607
    

    saved in directories relatively

    excerpt

    find . -name '*.gcda' 
    ./main/.libs/output.gcda
    ./main/.libs/internal_functions_cli.gcda
    ./main/.libs/strlcpy.gcda
    ./main/.libs/SAPI.gcda
    ./main/.libs/fastcgi.gcda
    ./main/.libs/snprintf.gcda
    ./main/.libs/php_syslog.gcda
    ./main/.libs/network.gcda
    ./main/.libs/main.gcda
    ./main/.libs/rfc1867.gcda
    ./main/.libs/explicit_bzero.gcda
    ./main/.libs/php_content_types.gcda
    ./main/.libs/strlcat.gcda
    ./main/.libs/mergesort.gcda
    ./main/.libs/getopt.gcda
    ./main/.libs/fopen_wrappers.gcda
    ./main/.libs/php_ini.gcda
    ./main/.libs/php_open_temporary_file.gcda
    ./main/.libs/php_variables.gcda
    ./main/.libs/php_ticks.gcda
    ./main/.libs/spprintf.gcda
    ./main/streams/.libs/memory.gcda
    ./main/streams/.libs/userspace.gcda
    ./main/streams/.libs/plain_wrapper.gcda
    ./main/streams/.libs/streams.gcda
    ./main/streams/.libs/transports.gcda
    ./main/streams/.libs/xp_socket.gcda
    ./main/streams/.libs/filter.gcda
    ./main/streams/.libs/mmap.gcda
    ./main/streams/.libs/glob_wrapper.gcda
    ./main/streams/.libs/cast.gcda
    ./Zend/.libs/zend_generators.gcda
    ./Zend/.libs/zend_float.gcda
    ./Zend/.libs/zend_ini_scanner.gcda
    ./Zend/.libs/zend_ts_hash.gcda
    ./Zend/.libs/zend_extensions.gcda
    ./Zend/.libs/zend_execute_API.gcda
    ./Zend/.libs/zend_objects_API.gcda
    ./Zend/.libs/zend_multibyte.gcda
    ./Zend/.libs/zend_gc.gcda
    ./Zend/.libs/zend_alloc.gcda
    ./Zend/.libs/zend_inheritance.gcda
    ./Zend/.libs/zend_opcode.gcda
    ./Zend/.libs/zend_ptr_stack.gcda
    ./Zend/.libs/zend_smart_str.gcda
    ./Zend/.libs/zend_ini_parser.gcda
    ./Zend/.libs/zend_language_scanner.gcda
    ./Zend/.libs/zend_weakrefs.gcda
    ./Zend/.libs/zend_execute.gcda
    ./Zend/.libs/zend_object_handlers.gcda
    ./Zend/.libs/zend_constants.gcda
    ./Zend/.libs/zend_stream.gcda
    ./Zend/.libs/zend_ast.gcda
    ./Zend/.libs/zend_interfaces.gcda
    ./Zend/.libs/zend_string.gcda
    ./Zend/.libs/zend_strtod.gcda
    ./Zend/.libs/zend_closures.gcda
    ./Zend/.libs/zend_llist.gcda
    ./Zend/.libs/zend_default_classes.gcda
    ./Zend/.libs/zend_API.gcda
    ./Zend/.libs/zend_hash.gcda
    ./Zend/.libs/zend_stack.gcda
    ./Zend/.libs/zend_compile.gcda
    ./Zend/.libs/zend_signal.gcda
    ./Zend/.libs/zend_ini.gcda
    ./Zend/.libs/zend_highlight.gcda
    ./Zend/.libs/zend_operators.gcda
    ./Zend/.libs/zend_objects.gcda
    ./Zend/.libs/zend_sort.gcda
    ./Zend/.libs/zend_vm_opcodes.gcda
    ./Zend/.libs/zend_list.gcda
    ./Zend/.libs/zend_variables.gcda
    ./Zend/.libs/zend_iterators.gcda
    ./Zend/.libs/zend_exceptions.gcda
    ./Zend/.libs/zend.gcda
    ./Zend/.libs/zend_cpuinfo.gcda
    ./Zend/.libs/zend_language_parser.gcda
    ./Zend/.libs/zend_builtin_functions.gcda
    ./Zend/.libs/zend_virtual_cwd.gcda
    

    @ErawanArifNugroho said:
    Can we use centmin on Debian/Ubuntu?

    Centmin Mod is CentOS only - preferably CentOS 7 right now - CentOS 8 compatibility is work in progress https://community.centminmod.com/threads/centmin-mod-centos-8-compatibility-worklog.18372/

    @tuxandrew said:
    Is there any major differences noticed 7.3 --> 7.4?

    you didn't read the benchmarks I posted or you mean feature wise and not performance wise ? feature wise plenty of sites covering differences and what's new. I linked to some in my 7.4 thread for my Centmin Mod users at https://community.centminmod.com/threads/php-7-4-0-ga-stable-release-coming-soon.18727/

    Thanked by 1SteveMC
    * Centmin Mod Project (HTTP/2 support + ngx_pagespeed + Nginx Lua + Vhost Stats)
    * Centmin Mod LEMP Stack Quick Install Guide
  • SteveMCSteveMC Member
    edited December 2019

    eva2000 said: .gcda created files by PHP binary will be removed on make clean so you probably wiping them before you get a chance to inspect them ???

    That "my" problem. I don't have .gcda files at all, I was searching for them, before making the make clean ,(or anything else) , so I should be missing something, but I'll look deeper at it when I have time.

    Thanks for your replies @eva2000

    Good Night and Good Luck :sleeping:

Sign In or Register to comment.