Thread View: pl.comp.lang.ruby
16 messages
16 total messages
Started by moldovenu
Fri, 19 Oct 2007 08:20
Ruby poza railsami
Author: moldovenu
Date: Fri, 19 Oct 2007 08:20
Date: Fri, 19 Oct 2007 08:20
12 lines
1230 bytes
1230 bytes
Czy są tu osoby używające Ruby np. do przetwarzania dużej ilości danych? Mające większe projekty w tym języku - albo chociaż inne niż webowe? W czym robiliście je wcześniej, dlaczego właśnie Ruby? Jestem na etapie wyboru ru/py do pewnego projektu - pomijając wszystkie kwestie semantyki i możliwości języka, w wielu miejscach Ruby jest zwyczajnie dużo szybszy niż Python, nawet tam gdzie spodziewałem się iż Ruby polegnie. Są tu jacyś nie-railsowcy? ;) adam
Re: Ruby poza railsami
Author: Paweł Kondzior
Date: Fri, 19 Oct 2007 09:15
Date: Fri, 19 Oct 2007 09:15
16 lines
1551 bytes
1551 bytes
Ja uzywam ruby do tworzenia okresowych backupow danych i wysylania ich na server. Dnia 07-10-19 10:20, moldovenu napisał(a): > Czy są tu osoby używające Ruby np. do przetwarzania dużej ilości danych? > Mające większe projekty w tym języku - albo chociaż inne niż webowe? > W czym robiliście je wcześniej, dlaczego właśnie Ruby? > > Jestem na etapie wyboru ru/py do pewnego projektu - pomijając wszystkie > kwestie semantyki i możliwości języka, w wielu miejscach Ruby jest > zwyczajnie dużo szybszy niż Python, nawet tam gdzie spodziewałem się iż > Ruby polegnie. > > Są tu jacyś nie-railsowcy? ;) > > adam
Re: Ruby poza railsami
Author: ciukes
Date: Fri, 19 Oct 2007 11:58
Date: Fri, 19 Oct 2007 11:58
10 lines
1070 bytes
1070 bytes
> ... w wielu miejscach Ruby jest > zwyczajnie dużo szybszy niż Python, nawet tam gdzie spodziewałem się iż > Ruby polegnie. Powiedz wiecej o tym, przedstaw pomiary, problemy, zadania. Chetnie o tym poczytam. Pozdrawiam, ciukes.
Re: Ruby poza railsami
Author: Maciej Piechotka
Date: Fri, 19 Oct 2007 12:37
Date: Fri, 19 Oct 2007 12:37
14 lines
1495 bytes
1495 bytes
On Fri, 19 Oct 2007 10:20:35 +0200, moldovenu wrote: > Jestem na etapie wyboru ru/py do pewnego projektu - pomijając wszystkie > kwestie semantyki i możliwości języka, w wielu miejscach Ruby jest > zwyczajnie dużo szybszy niż Python, nawet tam gdzie spodziewałem się iż > Ruby polegnie. Hmm. Słyszałem twierdzenia temu przeciwne, ale żadnych testów nie robiłem. Pozdrawiam -- I've probably left my head... somewhere. Please wait untill I find it. Homepage (pl_PL): http://uzytkownik.jogger.pl/ (GNU/)Linux User: #425935 (see http://counter.li.org/)
Re: Ruby poza railsami
Author: moldovenu
Date: Fri, 19 Oct 2007 13:32
Date: Fri, 19 Oct 2007 13:32
13 lines
1318 bytes
1318 bytes
> Powiedz wiecej o tym, przedstaw pomiary, problemy, zadania. Chetnie o > tym poczytam. Moje testy to np. lista obiektów-danych. Tę listę tworzę, sortuję, iteruję, używam regexpa zmieniając coś w danych. Albo hashowanie różnych struktur i losowe wybieranie ich. Jak znajdę dziś jeszcze czas, to wrzucę te kody, jak nie to po weekendzie. Ale póki co, nikt tu z was nie pisze o programach w .rb zajmujących po 2-4gb ramu... :( adam
Re: Ruby poza railsami
Author: Paweł Kondzior
Date: Fri, 19 Oct 2007 14:07
Date: Fri, 19 Oct 2007 14:07
22 lines
1971 bytes
1971 bytes
Kiedys uzylem ruby do skopiowania bazy napisow do piosenek z pewnego portalu, algorytm pobieral strone, parsowal html, tworzyl rekordy w bazie, cala strona to okolo 3 GB kodu html, baza po sparsowaniu 350 mb, caly proces trwal okolo 4 dni, biblioteka do parsowania kodu html w ruby byla koszmarnie wolna :( zapewne uzywajac samych regexpow zajelo by to kilkanascie godzin, ale napisanie tego z wykorzystaniem DOM bylo owiele prostrze :) i latwiejsze w debugowaniu. Dnia 07-10-19 15:32, moldovenu napisał(a): >> Powiedz wiecej o tym, przedstaw pomiary, problemy, zadania. Chetnie o >> tym poczytam. > > Moje testy to np. lista obiektów-danych. Tę listę tworzę, sortuję, > iteruję, używam regexpa zmieniając coś w danych. > Albo hashowanie różnych struktur i losowe wybieranie ich. > > Jak znajdę dziś jeszcze czas, to wrzucę te kody, jak nie to po weekendzie. > > Ale póki co, nikt tu z was nie pisze o programach w .rb zajmujących po > 2-4gb ramu... :( > > adam
Re: Ruby poza railsami
Author: Jaroslaw Zabiello
Date: Fri, 19 Oct 2007 14:17
Date: Fri, 19 Oct 2007 14:17
16 lines
1398 bytes
1398 bytes
On Fri, 19 Oct 2007 09:20:35 +0100, moldovenu <moldovenu@spamu.niet.interia.pl> wrote: > Jestem na etapie wyboru ru/py do pewnego projektu - pomijając wszystkie > kwestie semantyki i możliwości języka, w wielu miejscach Ruby jest > zwyczajnie dużo szybszy niż Python, nawet tam gdzie spodziewałem się iż > Ruby polegnie. Jakieś cuda opowiadasz. Python jest lekko biorą jakieś 2x szybszy. Robiłem kiedyś masowe przetwarzane obrazków w Ruby w RMagick i chodziło to koszmarnie wolno + pożarł prawie całą pamięć. Zmieniłem na Pythona i PIL i poszło jak burza. -- Jarosław Zabiełło http://blog.zabiello.com
Re: Ruby poza railsami
Author: moldovenu
Date: Fri, 19 Oct 2007 17:41
Date: Fri, 19 Oct 2007 17:41
9 lines
1167 bytes
1167 bytes
> Jakieś cuda opowiadasz. Python jest lekko biorą jakieś 2x szybszy. Spokojnie. Kod się kończy piec ;) na razie wyniki czasowe są pl/rb/py 41:58:130, a mem: 735:595:655 Jak skończę, to wrzucę całość, każdy będzie mógł sobie pouruchamiać, pooptymalizować itd. adam
Re: Ruby poza railsami
Author: Marcin Mielżyński
Date: Sat, 20 Oct 2007 13:03
Date: Sat, 20 Oct 2007 13:03
24 lines
1984 bytes
1984 bytes
Jaroslaw Zabiello pisze: > On Fri, 19 Oct 2007 09:20:35 +0100, moldovenu > <moldovenu@spamu.niet.interia.pl> wrote: > >> Jestem na etapie wyboru ru/py do pewnego projektu - pomijając >> wszystkie kwestie semantyki i możliwości języka, w wielu miejscach >> Ruby jest zwyczajnie dużo szybszy niż Python, nawet tam gdzie >> spodziewałem się iż Ruby polegnie. > > Jakieś cuda opowiadasz. Python jest lekko biorą jakieś 2x szybszy. > Robiłem kiedyś masowe przetwarzane obrazków w Ruby w RMagick i chodziło > to koszmarnie wolno + pożarł prawie całą pamięć. Zmieniłem na Pythona i > PIL i poszło jak burza. > Python może być i 5x szybszy niż Ruby 1.8, ale porównywanie wydajności implementacji języków pod względem jakichś owrapowanych zewnętrznych bibliotek to porównywanie skarpetek z drzwiami. Btw, Ruby ma z koleji dużo mniejsze wymagania pamięciowe, głównie dzięki tagowaniu wskaźników, gdzie np. w Pythonie int to jest cały duży 12-bajtowy objekt (choć cache mu trochę pomaga), w Rubym Fixnum to zawsze jest tylko int*. lopex
Re: Ruby poza railsami
Author: Rafał Komorowski
Date: Sat, 20 Oct 2007 17:19
Date: Sat, 20 Oct 2007 17:19
12 lines
2067 bytes
2067 bytes
Dawno nie zaglądałem na forum. Nie wiem czy autor wątku jest jeszcze zainteresowany, ale w moim przypadku przygoda z Rubym to nie tylko Rails. Robię przy pomocy Rubiego transformacje materiału tekstowego zapisanego jako SGML, do dalszej obróbki. W skład tego wchodzi parsowanie, zapisanie jako drzewa obiektów i potem praca na takich strukturach. Stety/niestety nie implementowałem tego w innym języku, więc nie mam porównania co do szybkości czy zajętości pamięciu. Obrabiam pliki o maksymalnej objętości 10 MB, program wykonuje się kilka/kilkanaście minut, na starszym sprzęcie trwało to i pół godziny. W każdym razie jeśli pytanie czy jest czy się da i czy to działa - owszem, da się i działa. Z wyłączeniem moich własnych błędów, które co jakiś czas wykrywam - całość sprawuje się niezawodnie.
Re: Ruby poza railsami
Author: Jaroslaw Zabiello
Date: Sat, 20 Oct 2007 23:27
Date: Sat, 20 Oct 2007 23:27
14 lines
1340 bytes
1340 bytes
On Sat, 20 Oct 2007 14:03:54 +0100, Marcin Mielżyński <lopx@gazeta.pl> wrote: > Ruby ma z koleji dużo mniejsze wymagania pamięciowe, głównie dzięki > tagowaniu wskaźników, gdzie np. w Pythonie int to jest cały duży > 12-bajtowy objekt (choć cache mu trochę pomaga), w Rubym Fixnum to > zawsze jest tylko int*. Ruby może tak, ale Mongrel to już niekoniecznie. Zajmuje dużo więcej pamięci niż jakikolwiek proces Pythona jaki używam dla Pylons czy Django. -- Jarosław Zabiełło http://blog.zabiello.com
Re: Ruby poza railsami
Author: Marcin Mielżyński
Date: Sun, 21 Oct 2007 00:30
Date: Sun, 21 Oct 2007 00:30
25 lines
1949 bytes
1949 bytes
Jaroslaw Zabiello pisze: > On Sat, 20 Oct 2007 14:03:54 +0100, Marcin Mielżyński <lopx@gazeta.pl> > wrote: > >> Ruby ma z koleji dużo mniejsze wymagania pamięciowe, głównie dzięki >> tagowaniu wskaźników, gdzie np. w Pythonie int to jest cały duży >> 12-bajtowy objekt (choć cache mu trochę pomaga), w Rubym Fixnum to >> zawsze jest tylko int*. > > Ruby może tak, ale Mongrel to już niekoniecznie. Zajmuje dużo więcej > pamięci niż jakikolwiek proces Pythona jaki używam dla Pylons czy Django. > I znowu to samo!, co mongrel ma wspólnego z tym wątkiem ? Znowu porównujesz śliwki ze szpinakiem. Jakoś po latach przetwarzania danych w Rubym nie był mi potrzebny. Mongrel faktycznie może być przydatny przy jakiejś webdeveloperce od krórej chyba mniej nudne jest nawet kopanie rowów bo szybciej widać postępy... A tak na koniec, to wcale nie mongrel bierze tyle pamięci, wskaż mi w jego źródłach miejsce w którym jest taki zachłanny. lopex
Re: Ruby poza railsami
Author: moldovenu
Date: Mon, 22 Oct 2007 18:22
Date: Mon, 22 Oct 2007 18:22
79 lines
4422 bytes
4422 bytes
zgodnie z obietnicami ;) wrzucam kody którymi porównywałem szybkość i zajętość pamięci w perlu, rubym i pythonie. Zasadnicza część, to pliki dao/data_process.(rb|py|pl) które tworzą listę obiektów-rekordów danych (przyjąłem, że właśnie tak chcę porównywać szybkość tych języków). Tworzony obiekt (dao) jest instancją jednokrotnie dziedziczonej klasy z własną metodą sortowania. Nic skomplikowanego. Potem te obiekty sortuję, modyfikuję, znowu sortuję, przeszukuję regexpem... i dostaję takie mniej więcej wyniki: cd dao; perl data_process.pl; python data_process.py; ruby data_process.rb data_process.pl point: list created, 24.313586 total: 24.313586 MEM: 573 data_process.pl point: sorting 1, 6.366267 total: 30.679853 MEM: 673 data_process.pl point: total incr, 1.796528 total: 32.476381 MEM: 673 data_process.pl point: Last sort, 7.006141 total: 39.482522 MEM: 673 rev sort OK data_process.pl point: Find by regex, 2.995174 total: 42.477696 MEM: 735 fives: 200000 data_process.py point: list created 81.5295240879 total: 81.5295240879 MEM: 654 data_process.py point: sorting 1 11.3950788975 total: 92.9246029854 MEM: 654 data_process.py point: total incr 1.5905020237 total: 94.5151050091 MEM: 654 data_process.py point: last sort 11.1945290565 total: 105.709634066 MEM: 654 data_process.py point: Find by regex 15.8707268238 total: 121.580360889 MEM: 655 fives: 200000 fives counted ok MEM: 655 data_process.rb point: list created, 31.129116, total: 31.129116, MEM: 578 data_process.rb point: sorting 1, 5.633625, total: 36.762741, MEM: 578 data_process.rb point: total incr, 5.374478, total: 42.137219, MEM: 578 data_process.rb point: Last sort, 5.565322, total: 47.702541, MEM: 578 data_process.rb point: Find by regex, 7.589033, total: 55.291574, MEM: 595 fives: 200000 Ciekawi mnie, że ruby, choć bardziej dynamiczny od pythona, dużo lepiej sobie radzi w prostych operacjach jak sortowanie. Lepiej nawet od perla. Również czas tworzenia listy jest z ogromną przewagą dla Rubiego vs. py. A nawet szukanie regexpem. No chyba że tam są jakieś błędy...? Drugi test (w makefile jako pierszy) to głównie szybkość wybierania z hasha. hash.pl point: Hash created, 26.208645 total: 26.208645 MEM: 1391 hash.pl point: randoms created /not counted/, 4.211777 total: 26.208645 MEM: 1506 hash.pl point: RAndoms from hash, 17.002721 total: 43.211366 MEM: 1506 hash.py point: Hash created 81.9068770409 total: 81.9068770409 MEM: 842 hash.py point: randoms created /not counted/ 27.4965000153 total: 81.9068770409 MEM: 976 hash.py point: RAndoms from hash 11.7002389431 total: 93.607115984 MEM: 976 hash.rb point: Hash created, 101.553801, total: 101.553801, MEM: 1189 hash.rb point: randoms created /not counted/, 12.131743, total: 101.553801, MEM: 1213 hash.rb point: RAndoms from hash, 17.927992, total: 119.481793, MEM: 1213 Pliki źródłowe do całości http://mountains.ws/varia/rupy.tgz Można po prostu rozpakować i dać "make" Poza linuxowym sposobem sprawdzania pamięci, reszta kodu powinna działać też na innych systemach. Dla kompów <= 1GB ramu warto zmniejszyć zmienną "times" w data_process, aby się nie zaswapować. Disklajmer: testy robiłem pod kątem tego, co mniej-więcej chciałem sprawdzić. Jeśli uważacie, że daną operację w danym języku wydajniej jest zrobić w inny sposób - podzielcie się. Na razie nie cross-postuję tego na py i pl, bo ciekaw jestem waszych komentarzy i uwag. Dobrej zabawy ;) -adam
Re: Ruby poza railsami
Author: Paweł Kondzior
Date: Mon, 22 Oct 2007 19:31
Date: Mon, 22 Oct 2007 19:31
8 lines
1294 bytes
1294 bytes
Dnia 07-10-21 02:30, Marcin Mielżyński napisał(a): > > I znowu to samo!, co mongrel ma wspólnego z tym wątkiem ? Znowu > porównujesz śliwki ze szpinakiem. Jakoś po latach przetwarzania danych w > Rubym nie był mi potrzebny. Skąd tyle agresji w tobie ? Szczególnie do tych dwóch zawodów?
Re: Ruby poza railsami
Author: Marcin Mielżyński
Date: Tue, 23 Oct 2007 16:33
Date: Tue, 23 Oct 2007 16:33
14 lines
1435 bytes
1435 bytes
Paweł Kondzior pisze: > > > Dnia 07-10-21 02:30, Marcin Mielżyński napisał(a): >> >> I znowu to samo!, co mongrel ma wspólnego z tym wątkiem ? Znowu >> porównujesz śliwki ze szpinakiem. Jakoś po latach przetwarzania danych >> w Rubym nie był mi potrzebny. > Skąd tyle agresji w tobie ? Szczególnie do tych dwóch zawodów? Ja agresji ? :D, jeżeli jeden wykrzyknik kojarzy się agresją, w takim razie przepraszam. lopex
Re: Ruby poza railsami
Author: roman.janowczyk
Date: Fri, 02 Nov 2007 21:53
Date: Fri, 02 Nov 2007 21:53
19 lines
1865 bytes
1865 bytes
jeśli chodzi o benchmark to popatrz tutaj: http://www.timestretch.com/FractalBenchmark.html i http://wiki.rubyonrails.org/rails/pages/Framework%20Performance Pozdrawiam, R.J. moldovenu napisał(a): > Czy są tu osoby używające Ruby np. do przetwarzania dużej ilości danych? > Mające większe projekty w tym języku - albo chociaż inne niż webowe? > W czym robiliście je wcześniej, dlaczego właśnie Ruby? > > Jestem na etapie wyboru ru/py do pewnego projektu - pomijając wszystkie > kwestie semantyki i możliwości języka, w wielu miejscach Ruby jest > zwyczajnie dużo szybszy niż Python, nawet tam gdzie spodziewałem się iż > Ruby polegnie. > > Są tu jacyś nie-railsowcy? ;) > > adam
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads