Howdy, Stranger!

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

Subscribe to our newsletter

Advertise on LowEndTalk.com

Latest LowEndBox Offers

    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 28 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 2Mic-hael Edmond
    • MikeAMikeA Member, Provider

      Thanks for always posting those benchmarks with newer releases.

    • 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)
    • @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?

      Avoid scams and stay updated with legitimate great deals: LowEndBoxes Review | The LEBRE Whitelist of non-scammy hosts | Pending whitelist: Evolution-Host, Bandit Host, HostSlick

    • CConnerCConner Member, Provider

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

    • Master_BoMaster_Bo Member
      edited November 29

      @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)
    • So that's why some of my vps changed to 7.4 yesterday

    • SteveMCSteveMC Member
      edited November 29

      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)
    • 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 realiable cloud VPS instance starting from around $5usd/mo.

    • bjobjo Member
      edited November 29

      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 1

      @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 2

      @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 2

      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.