Aktywne Wpisy
klef96 +178
Wy naprawdę w ciągu 8 lat zapomnieliście co się działo w Polsce pod rządami Tuska?
Nie wiem skąd tu takie wielbienie PO, chyba wszyscy macie po max 15 lat
#pis #wybory #tvpiscodzienny #polityka
Nie wiem skąd tu takie wielbienie PO, chyba wszyscy macie po max 15 lat
#pis #wybory #tvpiscodzienny #polityka
LubiePieski +483
ja tylko przypomnę że gdyby nie cymbały z konfederacji którzy w większości poparli dude to od 3 lat mielibyśmy normalnego prezydenta i te wybory byłby tylko formalnością i nie byłoby żadnych obaw że pisowcy odwalą coś w stylu trumpa żeby utrzymać się przy władzy siłą
#wybory #bekazprawakow #konfederacja #polityka
#wybory #bekazprawakow #konfederacja #polityka
https://sarvendev.com/2018/06/generatory-w-php/
#programowanie #webdev #php
Trochę dłuższy? Z 0,3 do 7,6 s? Czy PHP ma w ogóle rozum i godnośc człowieka?
W takim np. Pythonie obie implementacje, czy z listą, czy z generatorem, wykonują się w podobnym czasie:
PHP 7.2.4 - 10 milionów
Tablica: 1181.21 ms
Generator: 1136.73 ms
PHP 7.0.29 - 10 milionów
Tablica: 1223.35 ms
Generator: 1624.24 ms
Jakim cudem mu wyszły takie liczby? Zakładam że to wina blackfire, czas mierzyłem
microtime
w skrypcie.$ time ./test_list.py
Max memory: 402.81640625 MiB
./test_list.py 0,45s user 0,14s system 99% cpu 0,588 total
$ time ./test_gen.py
Max memory: 16.578125 MiB
./test_gen.py 0,59s user 0,02s system 100% cpu 0,608 total
Tu z pamięcią (i nieznacznie zmienionym kodem, bardziej upodobnionym do kodu PHP).
Trochę mnie dziwi tak wysokie zużycie pamięci, podejrzewam że wlicza w to cały interpreter, ale nie dam głowy.
@mirasKo-Kalwario: Nie da się ukryć. Rozważałem tworzenie listy na zasadzie pętli zwiększającej zmienną o 1 i dopisującej do listy, ale nie chciałem niepotrzebnie komplikować kodu. Właśnie też sobie uświadomiłem, że zastanawiałem się, czy nie zaniżę w ten sposób wydajności, ale chyba dopisywanie do listy w Pythonie jest całkiem wydajne, nie? (łapię się na tym że o wydajności myślę z perspektywy Rusta...)
@sarveniusz: w pythonie asynchroniczność osiągało się do niedawna generatorami - patrz tornado, w js też przed async/await można bylo dzięki generatorom pisać asynchroniczny kod który wygląda jak synchroniczny itd
Range zwraca obiekt range a nie cała tablice/iterator
list(range) iteruje to całym range i zwraca całą zawartość do listy zapisując ją w pamięci
W pythonie generatory i list comprehensions są 'kompilowane' do kodu, który umożliwia wykonywanie na poziomie szybkości zbliżonej do C, o ilem ożna tak powiedizeć w ogóle o wykonywaniu kodu pythona. Zwykłe fory zaś, są wykonywane przez vmke pythona normalnie.
także
for x in range(something):
list.append(x)
będzie wolniejsze