Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:114082 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 47512 invoked from network); 20 Apr 2021 10:17:48 -0000 Received: from unknown (HELO php-smtp4.php.net) (45.112.84.5) by pb1.pair.com with SMTP; 20 Apr 2021 10:17:48 -0000 Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 101691804DC for ; Tue, 20 Apr 2021 03:20:18 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on php-smtp4.php.net X-Spam-Level: X-Spam-Status: No, score=0.6 required=5.0 tests=BAYES_50,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,HTML_MESSAGE,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.2 X-Spam-Virus: No X-Envelope-From: Received: from mail-lf1-f50.google.com (mail-lf1-f50.google.com [209.85.167.50]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by php-smtp4.php.net (Postfix) with ESMTPS for ; Tue, 20 Apr 2021 03:20:17 -0700 (PDT) Received: by mail-lf1-f50.google.com with SMTP id j18so60703206lfg.5 for ; Tue, 20 Apr 2021 03:20:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=craigfrancis.co.uk; s=default; h=mime-version:from:date:message-id:subject:to; bh=AlRt1dMCYIVKF3srg23935Tsbd2w5zct/t407NY69As=; b=BBUl9rktJ/5kF5wyvNckEumkHJKqWzxGpXmURfQYNtacYeUDKrbAw8ZOF7YgNsRT1q EL/rm7z2uy/NHTvwFTf9bWEndJs2PlTE3Atxak9106Vjuyvn7Dz5ulgmxE+QZVbV27Xx KZfxNjuknpOywOnGkfg2b2CoZ+kJMoTqjO8os= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=AlRt1dMCYIVKF3srg23935Tsbd2w5zct/t407NY69As=; b=oWagLvSlGrLXEvNDE7XFR01WmpiLrl1DvGHx8pJxSVlCgxHpqIEbFj5HXwu1Y5Uw7F sc2VhFtx4TdHYKhS8tnsuecYBJMxzbWIXPoxOC9uR+5jEul9L4h4JOyJgWoawsia96DU gXBHlwRIo8JqY6EtmnY1ANmmWDhwwXLmOx0ZcNI6KtAeL3ZYSXfaxBlJs+GQmJDeaHCb V54uYh79qkfXfqDJO4mq4EGRb5N3NtPlQ+m+AtfnBnKLLk0h/Vml5PPITEEENhD7Qc5A F2CJGOnniEqR1UGfcwV12ADp+L14xYNL3heE6l5ywIgJnjupBLpNP/kH9h1MRkIalvOA J36g== X-Gm-Message-State: AOAM531QMRJeBJ48nOwhrpDkUIYIZ0wVs35fWsYdZa2Y16V3Wk6HzDh+ B03gzFICQ7K6b05KoIy+2wTkICoMTTvdaeRpHi4CacYcd+Mdfw== X-Google-Smtp-Source: ABdhPJxwaQBT/uZrnLw9a2487ZS5+P7rXEyPJ398ON64JcTu62h2y+WZYJqm7rXL5f6YeSpwDWLe/1Da7pE4UNyQPB4= X-Received: by 2002:a05:6512:3f87:: with SMTP id x7mr15435788lfa.617.1618914014087; Tue, 20 Apr 2021 03:20:14 -0700 (PDT) MIME-Version: 1.0 Date: Tue, 20 Apr 2021 11:20:03 +0100 Message-ID: To: PHP internals Content-Type: multipart/alternative; boundary="000000000000bb612805c064ca7a" Subject: Performance testing, paid From: craig@craigfrancis.co.uk (Craig Francis) --000000000000bb612805c064ca7a Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi internals, I'm looking for someone to test the performance impact of a change to PHP. Specifically the change affects how PHP does string concatenation, in regards to the is_literal() RFC[1], where Joe Watkins has created an initial patch[2]. This might not be the final version, I just want to have some rough stats on the impact it would have, if you have any suggestions on how to improve it, and an opinion on whether this would be a problem in getting approval from internals (I'd like to quote you in the RFC). It would be paid work, as I can't expect your help for free. I'm hoping to keep within a budget of =C2=A32,000 for this bit, and happy to do a PayPal = or Bank Transfer based on the number of hours or days worked (your preference)= . I have emailed Dmitry off-list, on Sunday, assuming I've got the email address correct. And I've done some basic tests myself; where the main one doesn't represent a typical PHP project - which is a loop concatenating the same string 5 million times[3] using a similar approach to micro_bench.php[4]... I think that's the worst case scenario, where the biggest difference I got was a +1.3% increase in processing time[5]. As an aside, DanAck has a version which uses a separate function to do the concatenation, which should avoid the main performance concern, but might be a bit harder for existing projects to use. Thanks, Craig [1] https://wiki.php.net/rfc/is_literal [2] https://github.com/php/php-src/compare/master...krakjoe:literals [3] https://github.com/craigfrancis/php-is-literal-rfc/blob/main/tests/001.phpt [4] https://github.com/php/php-src/blob/master/Zend/micro_bench.php [5] The times come from 8 alternating runs (4 each), discarding the first 2 runs (warm up), and adding the remaining 3 runs together: 1.354s to 1.367s =3D +0.013s =3D 0.96% 1.354s to 1.368s =3D +0.014s =3D 1.03% 1.354s to 1.364s =3D +0.010s =3D 0.74% 1.357s to 1.374s =3D +0.017s =3D 1.25% 1.355s to 1.368s =3D +0.013s =3D 0.96% 1.341s to 1.358s =3D +0.017s =3D 1.27% 1.354s to 1.367s =3D +0.013s =3D 0.96% --000000000000bb612805c064ca7a--