Predkosc laczenia i formatowania stringow

0

Witam,
Szukałem dziś coś o wydajności sprintf, i trafiłem na coś takiego:
http://judebert.com/progress/archives/204-PHP-String-Formatting-Performance.html
Wyniki (jak autor tekstu wspomniał) były zaiste zaskakujące. Wychodzi z nich, że łączenie stringów wpychając je w podwójny cudzysłów razem z tekstem itd jest najszybsze spośród testowanych metod. Tymczasem miliony początkujących userów dziennie na wielu forach, kanałach irc, oraz w realu zostaje zruganych przez starszych kolegów za łączenie stringów tą metodą, bo jest brzydka i przede wszystkim wolna. O ile "piękność" czy ew. "profesjonalność" tego rozwiązania może być kwestią dyskusyjną (bo nie można tego obiektywnie zmierzyć), to już prędkość wykonywania kodu owszem.
Z ciekawości odpaliłem u siebie (najnowsze PHP 5.X, nie pamiętam numerku, Apache 2.2, WinXP, bez Zend Optimizera), wyniki były dość podobne, z lekką przewagą dla Heredoc.
Nigdy podobnych testów nie robiłem, więc unikałem podwójnego cudzysłowy jak ognia, bo jest be, bo w książkach piszą, że wolny, bo na forum Cię zjedzą za to. Wiem, że żaden skrypt nie łączy stringów parę tysięcy razy na wywołanie, więc różnicy i tak pewnie nie poczuję, ale zastanawiam się, czy nie warto zacząć teraz ładować wszystkiego do podwójnego cudzysłowy?

0

Ja tam do tej szybkości nie przykładam uwagi, to są typowe potyczki pod tytułem "heredocem jest 3 milisekundy szybciej". Po prostu odradzam użytkownikom dodawanie stringów w ten sposób, bo jest mało edukacyjny. Nie wykonasz w ten sposób prostego działania podczas wstawiania do stringa, a i wielu zonka zaliczyło jak chciało dodać złożoną tablicę i nic z tego nie wyszło. Kolejny problem to to, że najczęściej kolorowanie składni albo nie przewiduje takiej opcji, albo tylko pogrubia zmienną, jak dla mnie to nie jest wystarczające wyróżnienie, wszystkie zmienne powinny być takimi samymi kolorami.

Bicie się o to czy coś się wykonuje w 0,003 milisekundy czy w 0,004 milisekundy jest bezcelowe, na wykonanie całego skryptu zejdzie ci może 2-3 milisekundy więcej, ktoś potrafi w ogóle zobaczyć taką różnicę? Przedwczesna optymalizacja to zło.

0

No właśnie tyle sobie sobie wywnioskowałem samodzielnie.
A w Eclipse, w którym robię, zmienne wepchane w "" są ładnie kolorowane, także to nie problem.

0
dzek69 napisał(a)

No właśnie tyle sobie sobie wywnioskowałem samodzielnie.
A w Eclipse, w którym robię, zmienne wepchane w "" są ładnie kolorowane, także to nie problem.

Ale litości, pomyśl o innych którzy będą kod po tobie edytować w różnych edytorach i dostawać migreny, 2 milisekundy vs. większa czytelność - według mnie wygrywa drugie. Tym bardziej że ten sposób jest co najmniej dziwny - normalne zmienne można zapisać po prostu wstawiając $zmienna, tablice trzeba {$zmienna[1][2]}, no i nie można wykonać prostej operacji jak dodanie albo odjęcie liczb bez wprowadzania trzeciego sposobu zapisu, to przeczy zasadzie jednolitości.

0

ale spokojnie, ja nie piszę, że tego używam :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1