Zastanawiam się nad tym od jakiegoś czasu. Jak mówi tytuł, która jest szybsza, rzeczywista funkcja lub po prostu podniesienie do połowy mocy?
AKTUALIZACJA
Nie jest to kwestia przedwczesnej optymalizacji. Jest to po prostu pytanie o to, jak faktycznie działa podstawowy kod. Jaka jest teoria działania kodu Python?
Wysłałem Guido van Rossumowi wiadomość e-mail, ponieważ naprawdę chciałem poznać różnice w tych metodach.
Mój e-mail:
Istnieją co najmniej 3 sposoby wykonania pierwiastka kwadratowego w Pythonie: math.sqrt, operator „**” i pow (x, .5). Jestem ciekawy różnic we wdrażaniu każdego z nich. Jeśli chodzi o wydajność, która jest lepsza?
Jego odpowiedź:
pow i ** są równoważne; math.sqrt nie działa dla liczb zespolonych i łączy z funkcją C sqrt (). Co do tego, który jest szybszy, nie mam pojęcia ...
math.sqrt
jest to bardziej zoptymalizowana rutyna (jak jest) i wyraźniej wyraża intencję, zawsze powinna być preferowana x**.5
. Nie jest przedwczesna optymalizacja, aby wiedzieć, co piszesz, i wybierz alternatywę, która jest szybsza i zapewnia większą przejrzystość kodu. Jeśli tak, musisz równie dobrze argumentować, dlaczego wybrałeś inne alternatywy.