konto usunięte
- 1
- 2
Tomasz Zadora programuję
Temat: Fabien Potencier o PHP
To pokaż artysto ten kod w PHP który spłodziliście... pewnie zapomniało się o unset albo pracy ze wskaźnikami. Przetwarzałem już w PHP w trybie CLI gigabajty danych i nie było większego problemu.Tomasz Zadora edytował(a) ten post dnia 05.07.12 o godzinie 21:06konto usunięte
Temat: Fabien Potencier o PHP
Łukasz K.:
a jaki był ten "artystyczny" algorytm tego narzędzia?
Masz jakiś problem, o którym chciałbyś porozmawiać?
jestem ciekaw jak wyglądał kod który takie błędy generował
uczyć można się na błędach swoich lub cudzych
konto usunięte
Temat: Fabien Potencier o PHP
Mogę wiedzieć czego się czepiliście tego "artysty"? Bo nie bardzo rozumiem? Zrobiłem tu komuś jakąś krzywdę, albo coś? Nie wiem... jakieś herezje prawiłem? Kogoś obraziłem? Skąd domniemania o złej jakości kodu? Bardzo jestem tego ciekaw - nie przypominam sobie, bym dawał podstawy do takiego filtra.[Powyższe to pytania retoryczne]
Unset i referencje poszły ostro w ruch. Skrypt musiał sporo rzeczy agregować, przeliczać. Nieważne, w każdym razie nie były to zadania trywialne. I też myślałem, że PHP da radę, inaczej nie zaczęlibyśmy go w PHP. Prawda jest taka, że PHP jest pamięciożerne i powolne. Nie wyrobił. Analogiczny kod w Pythonie tak. Bez żadnej specjalnej gospodarki zasobami. Po prostu zarobił. Nawet jeśli jakość byłaby bliska zeru, to w skrypcie pythonowym też taka musiała być, a różnica efektywności obu skryptów była paru klas.
Co do samych czasów operacji - rzutowało na to na pewno środowisko działania i ilość operacji na danych - ale nie chcę w to wchodzić, bo to nie ma znaczenia. Nie rozumiem za bardzo stwierdzenia "VBA daje radę". Pewnie, że zgrepować PHP-em też idzie i 100GB, ale to nie o to chodziło. Nie ma to też żadnego znaczenia jeśli chodzi o porównanie języków m.in. z powodu wymienionego w poprzednim akapicie.Łukasz K. edytował(a) ten post dnia 05.07.12 o godzinie 21:28
konto usunięte
Temat: Fabien Potencier o PHP
Łukasz K.:
Mieliśmy kiedyś małą zagwostkę, musieliśmy szybko i efektywnie przeorać kilkanaście giga logów. Na szybko napisaliśmy skrypt w PHP... zonk... memory exceeded. Optymalizowaliśmy to maksymalnie jak się dało, zonk, zonk, zonk. Kilkanaście minut orania przez PHP logów ważących z giga (tylko) i na końcu zonk z pamięcią.
No jaki programista takie efekty.
Wobec tego, napisaliśmy naprędce podobny oracz w Pythonie. 15GB w 3 minuty, znikome zużycie pamięci, statystyki potworzone jakie chcieliśmy. W zaoszczędzonym czasie porysowaliśmy wykresy, co szybko i przyjemnie pozwoliło nam rozwiązać kłopot.
Tzn że napisaliście skrypt w PHP, wczytaliście dane i przekroczyło Wam limit pamięci a później napisaliście podobny w Pythonie i wszystkie te dane MAGICZNIE się skompresowały i zużycie pamięci było znikome. Nie wiem czy próbujesz robić idiotę z nas czy z siebie i nie wnikam.
Już dawno udowodniłeś że dyskusja z Tobą nie ma sensu.Dariusz Półtorak edytował(a) ten post dnia 05.07.12 o godzinie 22:05
konto usunięte
Temat: Fabien Potencier o PHP
Dariusz Półtorak:
Łukasz K.:
No jaki programista takie efekty.
Już dawno udowodniłeś że dyskusja z Tobą nie ma sensu.
Chłopaki, może tak spróbować bez personalnych wycieczek?
Miał być flame na PHP a nie solówki jeden na jednego ;).
konto usunięte
Temat: Fabien Potencier o PHP
Adam Piotrowski:
Dariusz Półtorak:
Łukasz K.:No jaki programista takie efekty.
Już dawno udowodniłeś że dyskusja z Tobą nie ma sensu.
Chłopaki, może tak spróbować bez personalnych wycieczek?
Miał być flame na PHP a nie solówki jeden na jednego ;).
Dzięki.
konto usunięte
Temat: Fabien Potencier o PHP
Adam Piotrowski:
Chłopaki, może tak spróbować bez personalnych wycieczek?
Miał być flame na PHP a nie solówki jeden na jednego ;).
Tylko wypada mi przeprosić. Po prostu nie lubię jak ktoś próbuje mi wciskać bzdury. W dyskusji trzeba oddzielać argumenty od baśni tysiąca i jednej nocy.Dariusz Półtorak edytował(a) ten post dnia 05.07.12 o godzinie 23:47
konto usunięte
Temat: Fabien Potencier o PHP
Dobra:- to co piszę, to są fakty, a nie gdybania,
- nie zajmuję się wróżeniem z fusów,
- nigdy nie odważyłbym się oceniać umiejętności innego programisty na podst. jednego posta,
- jestem świadom tego, że niektórzy po prostu nie mogą znieść, że mam rację ;)
Niezależne obserwacje zachowania pamięci w PHP:
- http://www.blograndom.com/blog/2010/09/php-vs-python-a...
- http://athos.blogs.balabit.com/2011/02/betrayed-by-php/
Oni też się mylą? Zapewne tak...
Nie ma chyba sensu o tym rozmawiać. PHP w takiej czy innej wersji ma problemy z obsługą pamięci. Python nie. Wersje użyte wówczas przeze mnie to PHP 5.2.x i Python 2.4.x.
Bonus: każdy język (skrót myślowy) inaczej gospodaruje pamięcią - stwierdzenie, że te same dane (logicznie) nie mogą zajmować innej przestrzeni (fizycznie) w pamięci jest oznaką dość swobodnego podejścia do tematu, tak to nazwijmy. Wobec tego post, z zaznaczonym słowem "MAGICZNIE" i pytaniem o idiotów pozostawię bez odpowiedzi. Bo co musiałbym napisać? EOT.Łukasz K. edytował(a) ten post dnia 06.07.12 o godzinie 00:51
konto usunięte
Temat: Fabien Potencier o PHP
Łukasz K.:
Dobra:
- to co piszę, to są fakty, a nie gdybania,
- nie zajmuję się wróżeniem z fusów,
- nigdy nie odważyłbym się oceniać umiejętności innego programisty na podst. jednego posta,
- jestem świadom tego, że niektórzy po prostu nie mogą znieść, że mam rację ;)
Niezależne obserwacje zachowania pamięci w PHP:
- http://www.blograndom.com/blog/2010/09/php-vs-python-a...
- http://athos.blogs.balabit.com/2011/02/betrayed-by-php/
Oni też się mylą? Zapewne tak...
Nie ma chyba sensu o tym rozmawiać. PHP w takiej czy innej wersji ma problemy z obsługą pamięci. Python nie. Wersje użyte wówczas przeze mnie to PHP 5.2.x i Python 2.4.x.
Bonus: każdy język (skrót myślowy) inaczej gospodaruje pamięcią - stwierdzenie, że te same dane (logicznie) nie mogą zajmować innej przestrzeni (fizycznie) w pamięci jest oznaką dość swobodnego podejścia do tematu, tak to nazwijmy. Wobec tego post, z zaznaczonym słowem "MAGICZNIE" i pytaniem o idiotów pozostawię bez odpowiedzi. Bo co musiałbym napisać? EOT.
Łukasz, problem jest innego typu. Wyrobiłeś sobie opinię na podstawie zabawy z 5.2 gdzie wiadomo, że ono nie daje się porównywać z 5.3. W moim środowisku testowym ten sam test, który wkleiłeś daje wynik ~3x niższy.
Masz zresztą nawet podany link w komentarzach do tego wpisu: http://www.php.net/manual/en/features.gc.performance-c...
Ze swojego doświadczenia powiem, że w 5.4 jest jeszcze lepiej. Język idzie w dobrym kierunku i do typowych zastosowań web przez swoją prostotę nadaje się wybitnie. Parsowanie logów 15GB+ nie jest typową czynnością i osobiście zastosowałbym tutaj wszystko, ale nie PHP.Adam Piotrowski edytował(a) ten post dnia 06.07.12 o godzinie 01:02
konto usunięte
Temat: Fabien Potencier o PHP
Adam Piotrowski:
Łukasz, problem jest innego typu. Wyrobiłeś sobie opinię na podstawie zabawy z 5.2 gdzie wiadomo, że ono nie daje się porównywać z 5.3. W moim środowisku testowym ten sam test, który wkleiłeś daje wynik ~3x niższy.
Masz zresztą nawet podany link w komentarzach do tego wpisu: http://www.php.net/manual/en/features.gc.performance-c...
Ze swojego doświadczenia powiem, że w 5.4 jest jeszcze lepiej.
Nie przeczę. Piszę tylko jak było i uważam, że Python jest bardziej wiarygodną platformą do pracy niż PHP. Moja prywatna opinia. Zarzuty postawione mi nie miały żadnego związku z przytoczonymi przeze mnie obserwacjami, a były jedynie atakami ad personam z powodu znanego tylko ich autorom.
Sam bawię się PHP 5.4 teraz, uważam że to wersja na plus, ale mimo wszystko wolę Pythona. Kwestia gustu i zaufania. (EDIT: I zastosowań.)Łukasz K. edytował(a) ten post dnia 06.07.12 o godzinie 01:23
konto usunięte
Temat: Fabien Potencier o PHP
Łukasz K.:
Adam Piotrowski:
Łukasz, problem jest innego typu. Wyrobiłeś sobie opinię na podstawie zabawy z 5.2 gdzie wiadomo, że ono nie daje się porównywać z 5.3. W moim środowisku testowym ten sam test, który wkleiłeś daje wynik ~3x niższy.
Masz zresztą nawet podany link w komentarzach do tego wpisu: http://www.php.net/manual/en/features.gc.performance-c...
Ze swojego doświadczenia powiem, że w 5.4 jest jeszcze lepiej.
Nie przeczę. Piszę tylko jak było i uważam, że Python jest bardziej wiarygodną platformą do pracy niż PHP. Moja prywatna opinia. Zarzuty postawione mi nie miały żadnego związku z przytoczonymi przeze mnie obserwacjami, a były jedynie atakami ad personam z powodu znanego tylko ich autorom.
Sam bawię się PHP 5.4 teraz, uważam że to wersja na plus, ale mimo wszystko wolę Pythona. Kwestia gustu i zaufania. (EDIT: I zastosowań.)
Tak sprawdziłem te testy. W momencie jak dorzucasz count do elementów tablicy (a w wypadku PHP $i) to zużycie w wypadku Pythona gwałtownie wzrasta. Zaraz zarzucę wyniki.
Ok, nie znam dość dobrze Pythona, pisałem w nim tylko okazyjnie więc fajnie by było jak by ktoś rzucił na to okiem:
Python:
data = []
count = 0
while (count < 10000):
data.append(['one %d' % count, 'two %d' % count, 'three %d' % count, 'four %d' % count, 'five %d' % count, 'six %d' % count])
count = count + 1
PHP:
<?php
$data = array();
for($i = 0; $i < 10000; $i++){
$data[] = array('one'.$i, 'two'.$i, 'three'.$i, 'four'.$i, 'five'.$i, 'six'.$i);
}
Wyniki:
Python 7615408 czyli ok 7.2
PHP 5.3.5 11010048 czyli ok 10.5
O ile nadal wypada to na korzyść Pythona o tyle nie jest to u diabła 10x różnica tym razem. Wszystko kwestią konfiguracji.
PS: Jak by ktoś wyłapał poprzedni post z dziwnym niskim wynikiem dla PHP :) Przypadkowo wrzuciłem $i++ w kod zapominając o for (upał) co przeskoczyło sporą ilość iteracji :| Mój błąd.
//EDIT akurat teraz nie mam pod ręką php 5.4. Ktoś może to sprawdzić ? Z tego co wiem 5.4 wprowadziło sporo ulepszeń jeżeli chodzi o zarządzanie pamięcią i wydajność. Dariusz Półtorak edytował(a) ten post dnia 06.07.12 o godzinie 10:04
Marcin Staniszczak Programista Python
Temat: Fabien Potencier o PHP
Zmień na:
data = []
for count in range(1, 10000):
data.append(['one %d' % count, 'two %d' % count, 'three %d' % count, 'four %d' % count, 'five %d' % count, 'six %d' % count])
Ale to raczej niewiele zmieni jeśli chodzi o zużycie pamięci;-) Jest tylko troszkę bardziej pythonow ;-)
konto usunięte
Temat: Fabien Potencier o PHP
Marcin Staniszczak:Bardziej xrange ;)
Ale to raczej niewiele zmieni jeśli chodzi o zużycie pamięci;-) Jest tylko troszkę bardziej pythonow ;-)
Marcin Staniszczak Programista Python
Temat: Fabien Potencier o PHP
A niech będzie xrange ;-)konto usunięte
Temat: Fabien Potencier o PHP
Marcin Staniszczak:
Zmień na:
data = []
for count in range(1, 10000):
data.append(['one %d' % count, 'two %d' % count, 'three %d' % count, 'four %d' % count, 'five %d' % count, 'six %d' % count])
Ale to raczej niewiele zmieni jeśli chodzi o zużycie pamięci;-) Jest tylko troszkę bardziej pythonow ;-)
No wyniki są niemal identyczne. Swoją drogą coś extra w postaci Node.js
var data = [];
for(i = 0; i < 10000; i++) {
data.push(['one'+i, 'two'+i, 'three'+i, 'four'+i, 'five'+i, 'six'+i]);}
Wynik:
rss: 16211968
heapTotal: 11417856
heapUsed: 5306744
//EDIT, swoją drogą ciekawi mnie jedna rzecz. Może ktoś wytłumaczy. Zainteresowałem się wartością RSS. Wg Wikipedii http://en.wikipedia.org/wiki/Resident_set_size to ilość pamięci RAM zajętej przez proces zgadza się ? No to skonstruowałem coś takiego:
Dla Node.js to samo co było z uwagi na to że rss jest podany:
console.log(util.inspect(process.memoryUsage()));
Dla Pythona
print resource.getrusage(resource.RUSAGE_SELF).ru_maxrss * 1024
Dla PHP:
exec("ps -o rss -p ".getmypid(), $output);
echo $output[1] *1024;
I spróbowałem to dla 10000, 20000 i 50000 operacji
Node.js
10000 - 16220160
20000 - 18923520
50000 - 36773888
PHP
10000 - 33681408
20000 - 53956608
50000 - 114728960
Python
10000 - 10129408
20000 - 14974976
50000 - 29102080
// EDIT, to nie ważne, był błąd w skrypcie, podstawiłem prawidłowe wyniki
// Dziwi mnie niemal identyczna wartość dla PHP. Ktoś zna PHP // bardziej od środka by to wyjaśnić ?Dariusz Półtorak edytował(a) ten post dnia 07.07.12 o godzinie 20:54
Łukasz
C.
Senior Technical
Architect
Temat: Fabien Potencier o PHP
Dariusz Półtorak:http://www.informit.com/articles/article.aspx?p=516587
Dziwi mnie niemal identyczna wartość dla PHP. Ktoś zna PHP bardziej od środka by to wyjaśnić ?
konto usunięte
Temat: Fabien Potencier o PHP
Łukasz K.:
Widzę, że nie ma sensu się odzywać na tym forum, bo same bystrzaki tu siedzą. Taką wiedzą się popisujecie, że tylko załamać ręce...
:)
jestesmy glodni i mamy ostre zeby
- 1
- 2
Podobne tematy
-
PHP » Narzędzia do PHP -
-
PHP » counter.php -
-
PHP » php wyciąganie danych z pliku tekstowego -
-
PHP » Darmowy skrypt PHP do testów (quizów) online -
-
PHP » Jak zapisac dane z php w access log'u (nginx)? -
-
PHP » Programista PHP- projekt w Poznaniu -
-
PHP » php proxy ftp -
-
PHP » Różnice w wynikach z JS i PHP -
-
PHP » PHP przekazywanie danych -
-
PHP » Problem z połączeniem PHP z MySQL Cluster -
Następna dyskusja: