1unitedpower: Datum kürzen

Beitrag lesen

Deine ursprüngliche Funktion macht aber auch viel mehr, als das was du gebenchmarkt hast.

Dann messen wir die eben mal, das Ergebnis wird Dir nicht gefallen:

Doch, es gefällt mir, dass du dir die Mühe machst und belastbare Fakten schaffst. Ich hab meine negative Bewertung deshalb auch zurückgezogen.

An meiner persönlichen Bewertung der Resultate ändert das aber nichts. Der Messfehler hat sich signifikant auf das Ergebnis ausgewirkt, aber nach wie vor liegt das Optimierungspotenzial im zu vernachlässigbaren Mikrosekunden-Bereich. Da zu investieren lohnt sich nicht. Ich habe auch mal mit phpbench einen Schnelltest gemacht und alle bisher vorgeschlagenen Lösungen einbezogen, das Ergebnis deckt sich im Wesentlichen mit deinem:

Warm-Up-Revisionen: 5
Iterationen: 5
Revisionen: 10000
Standardabweichung: max. 5%
System: Windows 10, PHP 7.3 mit Opcache

+-------------------+---------+---------+---------+---------+---------+--------+-------+
| subject           | best    | mean    | mode    | worst   | stdev   | rstdev | diff  |
+-------------------+---------+---------+---------+---------+---------+--------+-------+
| benchBernd        | 1.776μs | 1.812μs | 1.791μs | 1.899μs | 0.044μs | 2.43%  | 3.37x |
| benchUrsus        | 0.532μs | 0.538μs | 0.534μs | 0.546μs | 0.006μs | 1.05%  | 1.00x |
| benchDedlfix      | 2.945μs | 2.972μs | 2.954μs | 3.024μs | 0.030μs | 1.02%  | 5.53x |
| benchRolf         | 1.025μs | 1.051μs | 1.040μs | 1.085μs | 0.021μs | 2.04%  | 1.96x |
| bench1UnitedPower | 3.124μs | 3.144μs | 3.138μs | 3.174μs | 0.017μs | 0.55%  | 5.85x |
+-------------------+---------+---------+---------+---------+---------+--------+-------+

Dafür dass meine Methode außerdem eine Plausibilitäts-Prüfung der Eingabe-Daten beinhaltet performt sie gar nicht so schlecht. Ich gewehre hier der Robustheit und Lesbarkeit vorzug vor Performanz.

0 44

Datum kürzen

  1. 1
    1. 0
      1. 0
  2. 0
  3. 0
    1. 0
      1. 0
      2. 0
        1. 0
        2. 0
          1. 0
            1. 0
              1. 0
                1. 0
                  1. 0
                    1. 0
                      1. 0
                        1. 0
                  2. 1
                    1. 0
                      1. 0
                        1. 0
                          1. 0
                            1. 0
                            2. 0

                              microtime(true)

                              1. 0
                                1. 0
                                  1. 0
                                    1. 5
                              2. 0
                              3. 0
                                1. -1

                                  Kann passieren

                          2. 0
                            1. 0
                      2. 0
                        1. 0
                      3. 0
                        1. 0
                          1. 0
                            1. 0

                              PS: Benchmark Code

                            2. 0
                              1. 0
      3. 0